a
    df                     @   s   d dl Z 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
mZ G dd deZe jdd Ze jd	d
 Ze jdd Ze jdd Ze jdd Ze jdd ZG dd dZdS )    N)Dataset)ClassificationHeadVisionTransformer)ConfigurationImageClassifierTrainerc                   @   s   e Zd Zdd Zdd ZdS )DummyDatasetClassificationc                 C   s   dS )N
    )selfr	   r	   i/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/test/x/test_image_classification.py__len__   s    z"DummyDatasetClassification.__len__c                 C   s   t dddt dfS )N          )torchZonesZtensor)r
   indexr	   r	   r   __getitem__   s    z&DummyDatasetClassification.__getitem__N)__name__
__module____qualname__r   r   r	   r	   r	   r   r   
   s   r   c                   C   s   t tddtddS )Nr   )Z
image_sizer   )Znum_classes)nnZ
Sequentialr   r   r	   r	   r	   r   model   s    r   c                  C   s   t  } tjjj| ddS )Nr   )Z
batch_size)r   r   utilsdataZ
DataLoader)Zdatasetr	   r	   r   
dataloader   s    r   c                   C   s   t  S N)r   ZCrossEntropyLossr	   r	   r	   r   	criterion   s    r   c                 C   s   t j|  S r   )r   optimZAdamW
parameters)r   r	   r	   r   	optimizer"   s    r   c                 C   s   t jj| t|S r   )r   r   Zlr_schedulerZCosineAnnealingLRlen)r   r   r	   r	   r   	scheduler'   s    r!   c                  C   s   t  } d| _| S )Nr   )r   Z
num_epochs)configr	   r	   r   configuration,   s    r#   c                   @   s   e Zd Zdd Zdd ZdS )TestImageClassifierTrainerc                 C   s    t |||||||}|  d S r   )r   Zfit)r
   r   r   r   r   r!   r#   Ztrainerr	   r	   r   test_fit4   s    z#TestImageClassifierTrainer.test_fitc                 C   sJ   t t, t|||||||dd id W d    n1 s<0    Y  d S )NZfrodo)	callbacks)pytestZraises
ValueErrorr   )r
   r   r   r   r   r!   r#   r	   r	   r   test_exception8   s    z)TestImageClassifierTrainer.test_exceptionN)r   r   r   r%   r)   r	   r	   r	   r   r$   3   s   r$   )r'   r   Ztorch.nnr   Ztorch.utils.datar   Zkornia.contribr   r   Zkornia.xr   r   r   Zfixturer   r   r   r   r!   r#   r$   r	   r	   r	   r   <module>   s&   





