o  iZ@sddlmZddlmZddlmZddlmZmZm Z e dej ed\Z Z er/ddl mZn e dej ed\ZZ Gd d d Zd S) ) annotations) TYPE_CHECKING) Evaluator) IgniteInfo min_versionoptional_importz ignite.engineEvents)Enginer c@s<eZdZdZ ddddZdddZdddZdddZdS)ValidationHandlerz Attach validator to the trainer engine in Ignite. It can support to execute validation every N epochs or every N iterations. NTFintervalint validatorEvaluator | None epoch_levelbool exec_at_startreturnNonecCsD|durt|tstdt|jd||_||_||_||_dS)a  Args: interval: do validation every N epochs or every N iterations during training. validator: run the validator when trigger validation, suppose to be Evaluator. if None, should call `set_validator()` before training. epoch_level: execute validation every N epochs or N iterations. `True` is epoch level, `False` is iteration level. exec_at_start: whether to execute a validation first when starting the training. default to `False`. It can be useful especially for some transfer-learning cases to validate the initial model before training. Raises: TypeError: When ``validator`` is not a ``monai.engines.evaluator.Evaluator``. N=validator must be a monai.engines.evaluator.Evaluator but is .) isinstancer TypeErrortype__name__r r rr)selfr r rrrc/home/dell461/cl/sdc2/last_ska_mid/HISourceFinder-master-l/src/monai/handlers/validation_handler.py__init__!s  zValidationHandler.__init__rcCs*t|tstdt|jd||_dS)zA Set validator if not setting in the __init__(). rrN)rrrrrr )rr rrr set_validator:s  zValidationHandler.set_validatorenginer cCsP|jr|tj|jd|n |tj|jd||jr&|tj|dSdS)g Args: engine: Ignite Engine, it can be a trainer, validator or evaluator. )everyN)radd_event_handlerrEPOCH_COMPLETEDr ITERATION_COMPLETEDrSTARTEDrrrrrattachBs zValidationHandler.attachcCs&|jdur td|j|jjdS)r NzMplease set validator in __init__() or call `set_validator()` before training.)r RuntimeErrorrunstateepochr&rrr__call__Ns zValidationHandler.__call__)NTF) r r r rrrrrrr)r rrr)rr rr)r __module__ __qualname____doc__rrr'r,rrrrr s   r N) __future__rtypingrZmonai.engines.evaluatorr monai.utilsrrrOPT_IMPORT_VERSIONr_ ignite.enginer r rrrrs