a
    d                     @   sd   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 e j
dd ZG dd dZd	d
 ZdS )    N)AverageMeter)EarlyStoppingModelCheckpoint)TrainerStatec                   C   s   t jddddS )N   
      )Zkernel_size)nnZConv2d r
   r
   V/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/test/x/test_x.pymodel	   s    r   c                   @   s   e Zd Zdd Zdd ZdS )TestModelCheckpointc                 C   sZ   t |d}|d usJ dt i}d|d _||d|d |jdksFJ |d  sVJ d S )Ntest_monitor      ?r   epochZvalid_metricz
model_0.ptr   r   avgZbest_metricis_fileselfZtmp_pathr   cbmetricr
   r
   r   
test_smoke   s    


zTestModelCheckpoint.test_smokec                 C   sb   t |ddd d}|d usJ dt i}d|d _||d|d |jdksNJ |d  s^J d S )	Nr   c                 S   s   dS )Nmodel.ptr
   )xr
   r
   r   <lambda>       z:TestModelCheckpoint.test_custom_filename.<locals>.<lambda>)Zfilename_fcnr   r   r   r   r   r   r
   r
   r   test_custom_filename   s    

z(TestModelCheckpoint.test_custom_filenameN)__name__
__module____qualname__r   r   r
   r
   r
   r   r      s   r   c                 C   sB  t ddd}|d usJ |jdks&J dt i}d|d _|| d|d}|tjksVJ |jdksdJ |jdksrJ d|d _|| d|d}|tjksJ |jdksJ |jdksJ d|d _|| d|d}|tjksJ |jdksJ |jdksJ d|d _|| d|d}|tjksJ |jdks.J |jdks>J d S )Nr      )Zpatiencer   r   r   gffffff?)r   counterr   r   r   ZTRAININGZ
best_scoreZ	TERMINATE)r   r   r   stater
   r
   r   test_callback_earlystopping&   s0    




r%   )ZpytestZtorch.nnr	   Zkornia.metricsr   Zkornia.xr   r   Zkornia.x.utilsr   Zfixturer   r   r%   r
   r
   r
   r   <module>   s   
