Skip to content

Commit 59470e4

Browse files
authored
Add CallableEventWithFilter support to GarbageCollector (#6663)
Fixes # . ### Description Adds support for CallableEventWithFilter which is useful for not calling the GarbageCollector every iteration but e.g. every 10 iterations. ### Types of changes <!--- Put an `x` in all the boxes that apply, and remove the not applicable items --> - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [x] Integration tests passed locally by running `./runtests.sh -f -u --net --coverage`. - [x] Quick tests passed locally by running `./runtests.sh --quick --unittests --disttests`. - [ ] In-line docstrings updated. - [ ] Documentation updated, tested `make html` command in the `docs/` folder. --------- Signed-off-by: Matthias Hadlich <[email protected]>
1 parent 60620e4 commit 59470e4

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

monai/handlers/garbage_collector.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919

2020
if TYPE_CHECKING:
2121
from ignite.engine import Engine, Events
22+
from ignite.engine.events import CallableEventWithFilter
2223
else:
24+
CallableEventWithFilter, _ = optional_import(
25+
"ignite.engine.events", IgniteInfo.OPT_IMPORT_VERSION, min_version, "CallableEventWithFilter"
26+
)
2327
Engine, _ = optional_import("ignite.engine", IgniteInfo.OPT_IMPORT_VERSION, min_version, "Engine")
2428
Events, _ = optional_import("ignite.engine", IgniteInfo.OPT_IMPORT_VERSION, min_version, "Events")
2529

@@ -43,9 +47,9 @@ class GarbageCollector:
4347
- 0 (NOTSET)
4448
"""
4549

46-
def __init__(self, trigger_event: str = "epoch", log_level: int = 10):
47-
self.trigger_event: Events
48-
if isinstance(trigger_event, Events):
50+
def __init__(self, trigger_event: str | Events | CallableEventWithFilter = "epoch", log_level: int = 10):
51+
self.trigger_event: Events | CallableEventWithFilter
52+
if isinstance(trigger_event, Events) or isinstance(trigger_event, CallableEventWithFilter):
4953
self.trigger_event = trigger_event
5054
elif trigger_event.lower() == "epoch":
5155
self.trigger_event = Events.EPOCH_COMPLETED

0 commit comments

Comments
 (0)