o
    zig                     @   sZ   d dl Z d dlmZmZmZ d dlZd dlZd dlm	Z
 d dlmZ G dd de
eZ	dS )    N)AnyMappingUnion)SpikeDetection)Callbackc                   @   sJ   e Zd Ze dddddeejeeejf f de	de
dd	fd
dZd	S )r   trainerz
pl.Trainer	pl_modulezpl.LightningModuleoutputsbatch	batch_idxreturnNc                 C   sp   t |tjr| }nt |tr|d  }n
tdt|j | jd u r/t	j
|jd| _t| ||||S )Nlossz8outputs have to be of type torch.Tensor or Mapping, got zskip_batches.json)
isinstancetorchTensordetachr   	TypeErrortype__qualname__exclude_batches_pathospathjoindefault_root_dirFabricSpikeDetectionon_train_batch_end)selfr   r   r	   r
   r   r    r   U/home/ubuntu/.local/lib/python3.10/site-packages/pytorch_lightning/callbacks/spike.pyr      s   	


z!SpikeDetection.on_train_batch_end)__name__
__module__r   r   no_gradr   r   r   strr   intr   r   r   r   r   r      s    r   )r   typingr   r   r   r   pytorch_lightningpl lightning_fabric.utilities.spiker   r   $pytorch_lightning.callbacks.callbackr   r   r   r   r   <module>   s    