U |Ph @sddlmZddlmZddlmZddlmZddlm Z m Z ddl m Z m Z e deje d\ZZervdd lmZne deje d \ZZGd d d Zd S)) annotations)Callable) TYPE_CHECKING) IgniteInfo)IterationEventsengine_apply_transform) min_versionoptional_importz ignite.engineEvents)Enginer c@sDeZdZdZdddddddZd dd d d Zd dd d dZdS)PostProcessinga Ignite handler to execute additional post processing after the post processing in engines. So users can insert other handlers between engine postprocessing and this post processing handler. If using components from `monai.transforms` as the `transform`, recommend to decollate `engine.state.batch` and `engine.state.batch` in the engine(set `decollate=True`) or in the `DecollateBatch` handler first. MODEL_COMPLETEDrstrNone) transformeventreturncCs(||_|}|dkrtd||_dS)aQ Args: transform: callable function to execute on the `engine.state.batch` and `engine.state.output`. can also be composed transforms. event: expected EVENT to attach the handler, should be "MODEL_COMPLETED" or "ITERATION_COMPLETED". default to "MODEL_COMPLETED". )r ITERATION_COMPLETEDz;event should be `MODEL_COMPLETED` or `ITERATION_COMPLETED`.N)rupper ValueErrorr)selfrrrR/home/dell461/cl/sdc2/HISourceFinder-master-l/src/monai/handlers/postprocessing.py__init__%s zPostProcessing.__init__r )enginercCs,|jdkr|tj|n|tj|dS)g Args: engine: Ignite Engine, it can be a trainer, validator or evaluator. r N)radd_event_handlerrr r r)rrrrrattach4s zPostProcessing.attachcCst|jjtrt|jjtsBt|jj|jj|jd\|j_|j_nFtt|jj|jjD].\}\}}t|||j\|jj|<|jj|<qXdS)r)batchoutputrN) isinstancestaterlistrrr enumeratezip)rriborrr__call__>s"zPostProcessing.__call__N)r )__name__ __module__ __qualname____doc__rrr(rrrrr s r N) __future__rcollections.abcrtypingr monai.configrmonai.engines.utilsrr monai.utilsrr OPT_IMPORT_VERSIONr _ ignite.enginer r rrrr s