Register a set of Ignite Event-Handlers to a specified Ignite engine. Args: engine: Ignite Engine, it can be a trainer, validator or evaluator.
(self, engine: Engine)
| 127 | self.name = name |
| 128 | |
| 129 | def attach(self, engine: Engine) -> None: |
| 130 | """ |
| 131 | Register a set of Ignite Event-Handlers to a specified Ignite engine. |
| 132 | |
| 133 | Args: |
| 134 | engine: Ignite Engine, it can be a trainer, validator or evaluator. |
| 135 | |
| 136 | """ |
| 137 | if self.name is None: |
| 138 | self.logger = engine.logger |
| 139 | if self.logger.getEffectiveLevel() > logging.INFO: |
| 140 | suggested = f"\n\nimport ignite\nignite.utils.setup_logger('{self.logger.name}', reset=True)" |
| 141 | if self.logger.name != engine.logger.name: |
| 142 | suggested += f"\nignite.utils.setup_logger('{engine.logger.name}', reset=True)" |
| 143 | suggested += "\n\n" |
| 144 | warnings.warn( |
| 145 | f"the effective log level of {self.logger.name} is higher than INFO, StatsHandler may not output logs," |
| 146 | f"\nplease use the following code before running the engine to enable it: {suggested}" |
| 147 | ) |
| 148 | if self.iteration_log and not engine.has_event_handler(self.iteration_completed, Events.ITERATION_COMPLETED): |
| 149 | event = Events.ITERATION_COMPLETED |
| 150 | if callable(self.iteration_log): # substitute event with new one using filter callable |
| 151 | event = event(event_filter=self.iteration_log) |
| 152 | engine.add_event_handler(event, self.iteration_completed) |
| 153 | if self.epoch_log and not engine.has_event_handler(self.epoch_completed, Events.EPOCH_COMPLETED): |
| 154 | event = Events.EPOCH_COMPLETED |
| 155 | if callable(self.epoch_log): # substitute event with new one using filter callable |
| 156 | event = event(event_filter=self.epoch_log) |
| 157 | engine.add_event_handler(event, self.epoch_completed) |
| 158 | if not engine.has_event_handler(self.exception_raised, Events.EXCEPTION_RAISED): |
| 159 | engine.add_event_handler(Events.EXCEPTION_RAISED, self.exception_raised) |
| 160 | |
| 161 | def epoch_completed(self, engine: Engine) -> None: |
| 162 | """ |
no outgoing calls