Ë
    Dêñi˜  ã                   ó”   — d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
Zd dlmZ ddlmZmZ ddlmZ  G d„ d	e«      Z G d
„ de«      Zy)é    N)ÚPath)ÚAnyÚCallableÚOptionalÚUnion)ÚImageé   )Úcheck_integrityÚdownload_and_extract_archive)ÚVisionDatasetc                   óò   ‡ — e Zd ZdZdZdZdZdZddgdd	gd
dgddgddggZddggZ	ddddœZ
	 	 	 	 d%deeef   dedee   dee   deddfˆ fd„Zd&d„Zdedeeef   fd „Zdefd!„Zdefd"„Zd&d#„Zdefd$„Zˆ xZS )'ÚCIFAR10ab  `CIFAR10 <https://www.cs.toronto.edu/~kriz/cifar.html>`_ Dataset.

    Args:
        root (str or ``pathlib.Path``): Root directory of dataset where directory
            ``cifar-10-batches-py`` exists or will be saved to if download is set to True.
        train (bool, optional): If True, creates dataset from training set, otherwise
            creates from test set.
        transform (callable, optional): A function/transform that takes in a PIL image
            and returns a transformed version. E.g, ``transforms.RandomCrop``
        target_transform (callable, optional): A function/transform that takes in the
            target and transforms it.
        download (bool, optional): If true, downloads the dataset from the internet and
            puts it in root directory. If dataset is already downloaded, it is not
            downloaded again.

    zcifar-10-batches-pyz7https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gzzcifar-10-python.tar.gzÚ c58f30108f718f92721af3b95e74349aÚdata_batch_1Ú c99cafc152244af753f735de768cd75fÚdata_batch_2Ú d4bba439e000b95fd0a9bffe97cbabecÚdata_batch_3Ú 54ebc095f3ab1f0389bbae665268c751Údata_batch_4Ú 634d18415352ddfa80567beed471001aÚdata_batch_5Ú 482c414d41f54cd18b22e5b47cb7c3cbÚ
test_batchÚ 40351d587109b95175f43aff81a1287ezbatches.metaÚlabel_namesÚ 5ff9c542aee3614f3951f8cda6e48888©ÚfilenameÚkeyÚmd5NÚrootÚtrainÚ	transformÚtarget_transformÚdownloadÚreturnc                 ór  •— t         ‰| �  |||¬«       || _        |r| j                  «        | j	                  «       st        d«      ‚| j                  r| j                  }n| j                  }g | _        g | _	        |D ]Å  \  }}t        j                  j                  | j                  | j                  |«      }	t        |	d«      5 }
t!        j"                  |
d¬«      }| j                  j%                  |d   «       d|v r| j                  j'                  |d   «       n| j                  j'                  |d   «       d d d «       ŒÇ t)        j*                  | j                  «      j-                  d	d
dd«      | _        | j                  j/                  d«      | _        | j1                  «        y # 1 sw Y   �Œ9xY w)N)r$   r%   zHDataset not found or corrupted. You can use download=True to download itÚrbÚlatin1©ÚencodingÚdataÚlabelsÚfine_labelséÿÿÿÿé   é    )r   é   r1   r	   )ÚsuperÚ__init__r#   r&   Ú_check_integrityÚRuntimeErrorÚ
train_listÚ	test_listr-   ÚtargetsÚosÚpathÚjoinr"   Úbase_folderÚopenÚpickleÚloadÚappendÚextendÚnpÚvstackÚreshapeÚ	transposeÚ
_load_meta)Úselfr"   r#   r$   r%   r&   Údownloaded_listÚ	file_nameÚchecksumÚ	file_pathÚfÚentryÚ	__class__s               €ú\/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torchvision/datasets/cifar.pyr5   zCIFAR10.__init__4   sj  ø€ ô 	‰Ñ˜¨ÐEUÐÔVàˆŒ
áØ�M‰MŒOà×$Ñ$Ô&ÜÐiÓjÐjà�:Š:Ø"Ÿo™o‰Oà"Ÿn™nˆOàˆŒ	ØˆŒð $3ò 	>ÑˆI�xÜŸ™Ÿ™ T§Y¡Y°×0@Ñ0@À)ÓLˆIÜ�i Ó&ð >¨!ÜŸ™ A°Ô9�Ø—	‘	× Ñ   v¡Ô/Ø˜uÑ$Ø—L‘L×'Ñ'¨¨h©Õ8à—L‘L×'Ñ'¨¨mÑ(<Ô=÷>ð >ð	>ô —I‘I˜dŸi™iÓ(×0Ñ0°°Q¸¸BÓ?ˆŒ	Ø—I‘I×'Ñ'¨Ó5ˆŒ	à�‰Õ÷>ñ >ús   ÃA7F,Æ,F6	c                 óÖ  — t         j                  j                  | j                  | j                  | j
                  d   «      }t        || j
                  d   «      st        d«      ‚t        |d«      5 }t        j                  |d¬«      }|| j
                  d      | _        d d d «       t        | j                  «      D ��ci c]  \  }}||“Œ
 c}}| _        y # 1 sw Y   Œ8xY wc c}}w )Nr   r!   zVDataset metadata file not found or corrupted. You can use download=True to download itr)   r*   r+   r    )r;   r<   r=   r"   r>   Úmetar
   r7   r?   r@   rA   ÚclassesÚ	enumerateÚclass_to_idx)rI   r<   Úinfiler-   ÚiÚ_classs         rQ   rH   zCIFAR10._load_meta_   s¼   € Ü�w‰w�|‰|˜DŸI™I t×'7Ñ'7¸¿¹À:Ñ9NÓOˆÜ˜t T§Y¡Y¨uÑ%5Ô6ÜÐwÓxÐxÜ�$˜Óð 	2 Ü—;‘;˜v°Ô9ˆDØ §	¡	¨%Ñ 0Ñ1ˆDŒL÷	2ô 9BÀ$Ç,Á,Ó8O×P©9¨1¨f˜V Q™YÓPˆÕ÷	2ð 	2üó Qs   Á3/CÃC%ÃC"Úindexc                 óä   — | j                   |   | j                  |   }}t        j                  |«      }| j                  �| j	                  |«      }| j
                  �| j                  |«      }||fS )z–
        Args:
            index (int): Index

        Returns:
            tuple: (image, target) where target is index of the target class.
        )r-   r:   r   Ú	fromarrayr$   r%   )rI   rZ   ÚimgÚtargets       rQ   Ú__getitem__zCIFAR10.__getitem__h   sm   € ð —i‘i Ñ&¨¯©°UÑ(;ˆVˆô �o‰o˜cÓ"ˆà�>‰>Ð%Ø—.‘. Ó%ˆCà× Ñ Ð,Ø×*Ñ*¨6Ó2ˆFà�Fˆ{Ðó    c                 ó,   — t        | j                  «      S )N)Úlenr-   ©rI   s    rQ   Ú__len__zCIFAR10.__len__~   s   € Ü�4—9‘9‹~Ðr`   c                 óÌ   — | j                   | j                  z   D ]H  \  }}t        j                  j	                  | j
                  | j                  |«      }t        ||«      rŒH y y)NFT)r8   r9   r;   r<   r=   r"   r>   r
   )rI   r   r!   Úfpaths       rQ   r6   zCIFAR10._check_integrity�   sT   € Ø!Ÿ_™_¨t¯~©~Ñ=ò 	‰MˆH�cÜ—G‘G—L‘L §¡¨D×,<Ñ,<¸hÓGˆEÜ" 5¨#Õ.Ùð	ð r`   c                 ó”   — | j                  «       ry t        | j                  | j                  | j                  | j
                  ¬«       y )N)r   r!   )r6   r   Úurlr"   r   Útgz_md5rc   s    rQ   r&   zCIFAR10.downloadˆ   s2   € Ø× Ñ Ô"ØÜ$ T§X¡X¨t¯y©yÀ4Ç=Á=ÐVZ×VbÑVbÖcr`   c                 ó0   — | j                   du rdnd}d|› �S )NTÚTrainÚTestzSplit: )r#   )rI   Úsplits     rQ   Ú
extra_reprzCIFAR10.extra_repr�   s!   € ØŸ:™:¨Ñ-‘°6ˆØ˜˜Ð Ð r`   )TNNF)r'   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r>   rh   r   ri   r8   r9   rS   r   Ústrr   Úboolr   r   r5   rH   ÚintÚtupler   r_   rd   r6   r&   rn   Ú__classcell__)rP   s   @rQ   r   r      s"  ø„ ñð" (€KØ
C€CØ'€HØ0€Gà	Ð;Ð<Ø	Ð;Ð<Ø	Ð;Ð<Ø	Ð;Ð<Ø	Ð;Ð<ð€Jð 
Ð9Ð:ð€Ið #ØØ1ñ€Dð Ø(,Ø/3Øñ)à�C˜�IÑð)ð ð)ð ˜HÑ%ð	)ð
 # 8Ñ,ð)ð ð)ð 
õ)óVQð ð ¨¨s°C¨x©ó ð,˜ó ð $ó ódð
!˜C÷ !r`   r   c                   ó@   — e Zd ZdZdZdZdZdZddggZdd	ggZ	d
dddœZ
y)ÚCIFAR100zy`CIFAR100 <https://www.cs.toronto.edu/~kriz/cifar.html>`_ Dataset.

    This is a subclass of the `CIFAR10` Dataset.
    zcifar-100-pythonz8https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gzzcifar-100-python.tar.gzÚ eb9058c3a382ffc7106e4002c42a8d85r#   Ú 16019d7e3df5f24257cddd939b257f8dÚtestÚ f0ef6b0ae62326f3e7ffdfab6717acfcrS   Úfine_label_namesÚ 7973b15100ade9c7d40fb424638fde48r   N)ro   rp   rq   rr   r>   rh   r   ri   r8   r9   rS   © r`   rQ   ry   ry   ’   sQ   „ ñð
 %€KØ
D€CØ(€HØ0€Gà	Ð4Ð5ð€Jð
 
Ð3Ð4ð€Ið Ø!Ø1ñ�Dr`   ry   )Úos.pathr;   r@   Úpathlibr   Útypingr   r   r   r   ÚnumpyrD   ÚPILr   Úutilsr
   r   Úvisionr   r   ry   r€   r`   rQ   ú<module>rˆ      s;   ðÛ Û Ý ß 1Ó 1ã Ý ç @Ý !ôB!ˆmô B!ôJˆwõ r`   