Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 26 additions & 3 deletions docs/source/concepts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -229,10 +229,33 @@ event filtering function:
trainer.run(train_loader, max_epochs=100)


.. Note ::
The user can also define custom events. Events defined by user should inherit from :class:`~ignite.engine.events.EventEnum`
and be registered with :meth:`~ignite.engine.engine.Engine.register_events` in an `engine`.

.. code-block:: python

class CustomEvents(EventEnum):
"""
Custom events defined by user
"""
CUSTOM_STARTED = 'custom_started'
CUSTOM_COMPLETED = 'custom_completed'

engine.register_events(*CustomEvents)

These events could be used to attach any handler and are fired using :meth:`~ignite.engine.engine.Engine.fire_event`.

User can also register custom events with :meth:`~ignite.engine.engine.Engine.register_events`, attach handlers and fire custom events
calling :meth:`~ignite.engine.engine.Engine.fire_event` in any handler or `process_function`.
.. code-block:: python

@engine.on(CustomEvents.CUSTOM_STARTED)
def call_on_custom_event(engine):
# do something

@engine.on(Events.STARTED)
def fire_custom_events(engine):
engine.fire_event(CustomEvents.CUSTOM_STARTED)

.. Note ::

See the source code of :class:`~ignite.contrib.engines.create_supervised_tbptt_trainer` for an example of usage of
custom events.
Expand Down
3 changes: 3 additions & 0 deletions docs/source/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ flexibility to the user to allow for this:
def function_before_backprop(engine):
# insert custom function here

.. Note ::

Events defined by user should inherit from :class:`~ignite.engine.events.EventEnum`

More detailed implementation can be found in `TBPTT Trainer <_modules/ignite/contrib/engines/tbptt.html#create_supervised_tbptt_trainer>`_.

Expand Down
7 changes: 7 additions & 0 deletions ignite/engine/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,13 @@ def call_once(engine):
def call_on_events(engine):
# do something

Since v0.4.0, custom events defined by user should inherit from :class:`~ignite.engine.events.EventEnum` :

.. code-block:: python

class CustomEvents(EventEnum):
FOO_EVENT = "foo_event"
BAR_EVENT = "bar_event"
"""

EPOCH_STARTED = "epoch_started"
Expand Down