a
    d!                     @   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 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)ConfigurationSemanticSegmentationTrainerc                   @   s   e Zd Zdd Zdd ZdS )DummyDatasetSegmentationc                 C   s   dS )N
    )selfr   r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/test/x/test_segmentation.py__len__
   s    z DummyDatasetSegmentation.__len__c                 C   s   t dddt dd fS )N       )torchZoneslong)r   indexr   r   r	   __getitem__   s    z$DummyDatasetSegmentation.__getitem__N)__name__
__module____qualname__r
   r   r   r   r   r	   r   	   s   r   c                   C   s   t jddddS )Nr   r      )Zkernel_size)nnZConv2dr   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 )TestsemanticSegmentationTrainerc                 C   s    t |||||||}|  d S r   )r   Zfit)r   r   r   r   r   r    r"   Ztrainerr   r   r	   test_fit3   s    z(TestsemanticSegmentationTrainer.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_exception9   s    z.TestsemanticSegmentationTrainer.test_exceptionN)r   r   r   r$   r(   r   r   r   r	   r#   2   s   r#   )r&   r   Ztorch.nnr   Ztorch.utils.datar   Zkornia.xr   r   r   Zfixturer   r   r   r   r    r"   r#   r   r   r   r	   <module>   s$   





