U Ph@sddlmZddlmZmZddlZddlZddlm Z m Z ddl m Z m Z ddlmZddlmZddlmZGd d d ZdS) ) annotations)CallableSequenceN)decollate_batchlist_data_collate)SupervisedEvaluatorSupervisedTrainer)IterationEvents)Compose) CommonKeysc @s>eZdZdZdddddd d d d d dZddddddZdS) InteractionaC Ignite process_function used to introduce interactions (simulation of clicks) for DeepEdit Training/Evaluation. More details about this can be found at: Diaz-Pinto et al., MONAI Label: A framework for AI-assisted Interactive Labeling of 3D Medical Images. (2022) https://arxiv.org/abs/2203.12362 Args: deepgrow_probability: probability of simulating clicks in an iteration transforms: execute additional transformation during every iteration (before train). Typically, several Tensor based transforms composed by `Compose`. train: True for training mode or False for evaluation mode click_probability_key: key to click/interaction probability label_names: Dict of label names max_interactions: maximum number of interactions per iteration N probabilityfloatzSequence[Callable] | CallableboolzNone | dict[str, int]strintNone)deepgrow_probability transformstrain label_namesclick_probability_keymax_interactionsreturncCs:||_t|tst|n||_||_||_||_||_dS)N)r isinstancer rrrrr)selfrrrrrrrT/home/dell461/cl/sdc2/HISourceFinder-master-l/src/monai/apps/deepedit/interaction.py__init__-s zInteraction.__init__z'SupervisedTrainer | SupervisedEvaluatorzdict[str, torch.Tensor]dict)engine batchdatarc Cs|dkrtdtjjddg|jd|jgdrDt|jD]}||\}}||j j }| t j |jtB|jrtjj|||j}W5QRXn|||j}W5QRX|tj|it|dd}tt|D]>}|jr dd|j|nd|||j<|||||<qt|}| t jq s