Ë
    éÓ^j  ã                   ó$  — d Z ddlZddlZddlmZ ddlZddlmc mZ ddl	m
Z
 ddlmZ  ej                  e«      ZdZ G d„ d	ej"                  «      Z G d
„ dej&                  «      Z G d„ dej                  j                  j"                  «      Zy)zh Quick n Simple Image Folder, Tarfile based DataSet

Hacked together by / Copyright 2019, Ross Wightman
é    N)ÚOptional)ÚImageé   )Úcreate_readeré   c                   ó@   — e Zd Z	 	 	 	 	 	 	 	 dd„Zd„ Zd„ Zdd„Zdd„Zy)	ÚImageDatasetNc
                 ó¼   — |�t        |t        «      rt        |xs df||||	dœ|
¤Ž}|| _        || _        || _        || _        || _        |	| _        t        | _
        y )NÚ )ÚrootÚsplitÚ	class_mapÚadditional_features)Ú
isinstanceÚstrr   ÚreaderÚ
load_bytesÚinput_img_modeÚ	transformÚtarget_transformr   Ú_ERROR_RETRYÚ_max_retries)Úselfr   r   r   r   r   r   r   r   r   Úkwargss              ú\/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/data/dataset.pyÚ__init__zImageDataset.__init__   su   € ð ˆ>œZ¨´Ô4Ü"Ø’˜"ðàØØ#Ø$7ñð ñˆFð ˆŒØ$ˆŒØ,ˆÔØ"ˆŒØ 0ˆÔØ#6ˆÔ Ü(ˆÕó    c                 óª  — t        | j                  «      D ]G  }	 | j                  |   ^}}}| j                  r|j	                  «       nt        j                  |«      } n t        d| j                  › d�«      ‚| j                  r'| j                  s|j                  | j                  «      }| j                  �| j                  |«      }|€d}n| j                   �| j!                  |«      }| j"                  €||fS ||g|¢­S # t        t        f$ rA}t        j                  d|› d|› �«       |dz   t        | j                  «      z  }Y d }~�Œ7d }~ww xY w)NzSkipped sample (index z). r   zFailed to load z consecutive sampleséÿÿÿÿ)Úranger   r   r   Úreadr   ÚopenÚIOErrorÚOSErrorÚ_loggerÚwarningÚlenÚRuntimeErrorr   Úconvertr   r   r   )r   ÚindexÚattemptÚimgÚtargetÚfeaturesÚes          r   Ú__getitem__zImageDataset.__getitem__5   sC  € Ü˜T×.Ñ.Ó/ò 		ZˆGð7Ø)-¯©°UÑ);Ð&��V˜hØ$(§O¢O�c—h‘h”j¼¿¹ÀC»�Ùð			Zô  °×1BÑ1BÐ0CÐCWÐXÓYÐYà×Ò t§¢Ø—+‘+˜d×1Ñ1Ó2ˆCØ�>‰>Ð%Ø—.‘. Ó%ˆCàˆ>Ø‰FØ×"Ñ"Ð.Ø×*Ñ*¨6Ó2ˆFà×#Ñ#Ð+Ø˜�;Ðà˜Ð) Ñ)Ð)øô' œWÐ%ò 7Ü—‘Ð"8¸¸¸sÀ1À#Ð FÔGØ ™¤c¨$¯+©+Ó&6Ñ6–ûð7ús   šADÄEÄ6EÅEc                 ó,   — t        | j                  «      S ©N)r'   r   ©r   s    r   Ú__len__zImageDataset.__len__P   s   € Ü�4—;‘;ÓÐr   c                 ó<   — | j                   j                  |||«      S r2   )r   Úfilename©r   r*   ÚbasenameÚabsolutes       r   r6   zImageDataset.filenameS   s   € Ø�{‰{×#Ñ# E¨8°XÓ>Ð>r   c                 ó:   — | j                   j                  ||«      S r2   ©r   Ú	filenames©r   r8   r9   s      r   r<   zImageDataset.filenamesV   ó   € Ø�{‰{×$Ñ$ X¨xÓ8Ð8r   )NÚtrainNFÚRGBNNN©FF)Ú__name__Ú
__module__Ú__qualname__r   r0   r4   r6   r<   © r   r   r	   r	      s5   „ ð
 ØØØØ ØØ!Ø $ó)ò<*ò6 ó?ô9r   r	   c                   ój   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Zd„ Zd„ Zd„ Z	 ddee   fd„Z	dd„Z
dd	„Zy)ÚIterableImageDatasetNc                 ó–   — |€J ‚t        |t        «      r t        |f||||||||	|
||||dœ|¤Ž| _        n|| _        || _        || _        y )N)r   r   r   Úis_trainingÚ
batch_sizeÚnum_samplesÚseedÚrepeatsÚdownloadr   Ú	input_keyÚ
target_keyÚ	max_steps)r   r   r   r   r   r   )r   r   r   r   r   rI   rJ   rK   rL   rM   rN   r   rO   rP   r   r   rQ   r   s                     r   r   zIterableImageDataset.__init__\   sw   € ð( Ð!Ð!Ð!Ü�fœcÔ"Ü'ØðàØØ#Ø'Ø%Ø'ØØØ!Ø-Ø#Ø%Ø#ñð ñˆD�Kð$ !ˆDŒKØ"ˆŒØ 0ˆÕr   c              #   ó´   K  — | j                   D ]E  \  }}| j                  �| j                  |«      }| j                  �| j                  |«      }||f–— ŒG y ­wr2   )r   r   r   )r   r,   r-   s      r   Ú__iter__zIterableImageDataset.__iter__ˆ   s[   è ø€ ØŸ;™;ò 	‰KˆC�Ø�~‰~Ð)Ø—n‘n SÓ)�Ø×$Ñ$Ð0Ø×.Ñ.¨vÓ6�Ø�v�+Óñ	ùs   ‚AAc                 óZ   — t        | j                  d«      rt        | j                  «      S y)Nr4   r   )Úhasattrr   r'   r3   s    r   r4   zIterableImageDataset.__len__�   s"   € Ü�4—;‘; 	Ô*Ü�t—{‘{Ó#Ð#àr   c                 óh   — t        | j                  d«      r| j                  j                  |«       y y )NÚ	set_epoch)rU   r   rW   )r   Úcounts     r   rW   zIterableImageDataset.set_epoch–   s'   € ä�4—;‘; Ô,Ø�K‰K×!Ñ! %Õ(ð -r   Únum_workersc                 ój   — t        | j                  d«      r| j                  j                  |¬«       y y )NÚset_loader_cfg)rY   )rU   r   r[   )r   rY   s     r   r[   z#IterableImageDataset.set_loader_cfg›   s-   € ô
 �4—;‘;Ð 0Ô1Ø�K‰K×&Ñ&°;Ð&Õ?ð 2r   c                 ó   — J d«       ‚)Nz8Filename lookup by index not supported, use filenames().rE   r7   s       r   r6   zIterableImageDataset.filename£   s   € ØPÐPÓPˆur   c                 ó:   — | j                   j                  ||«      S r2   r;   r=   s      r   r<   zIterableImageDataset.filenames¦   r>   r   )Nr?   NFr   Né*   r   Fr@   NNNNNr2   rA   )rB   rC   rD   r   rS   r4   rW   r   Úintr[   r6   r<   rE   r   r   rG   rG   Z   si   „ ð
 ØØØØØØØØØ ØØØØ!Øó#*1òXòò)ð *.ñ@à! #™ó@óQô9r   rG   c                   ód   — e Zd ZdZd
d„Zd„ Zed„ «       Zej                  d„ «       Zd„ Z	d„ Z
d„ Zy	)ÚAugMixDatasetzCDataset wrapper to perform AugMix or other clean/augmentation mixesc                 ó²   — d | _         d | _        || _        | j                  j                  �%| j	                  | j                  j                  «       || _        y r2   )ÚaugmentationÚ	normalizeÚdatasetr   Ú_set_transformsÚ
num_splits)r   re   rg   s      r   r   zAugMixDataset.__init__­   sG   € Ø ˆÔØˆŒØˆŒØ�<‰<×!Ñ!Ð-Ø× Ñ  §¡×!7Ñ!7Ô8Ø$ˆ�r   c                 óª   — t        |t        t        f«      rt        |«      dk(  sJ d«       ‚|d   | j                  _        |d   | _        |d   | _        y )Né   z&Expecting a tuple/list of 3 transformsr   r   é   )r   ÚlistÚtupler'   re   r   rc   rd   ©r   Úxs     r   rf   zAugMixDataset._set_transformsµ   sM   € Ü˜!œd¤E˜]Ô+´°A³¸!²ÐeÐ=eÓeÐ;Ø!" 1¡ˆ�‰ÔØ˜a™DˆÔØ˜1™ˆ�r   c                 ó.   — | j                   j                  S r2   )re   r   r3   s    r   r   zAugMixDataset.transform»   s   € à�|‰|×%Ñ%Ð%r   c                 ó&   — | j                  |«       y r2   )rf   rm   s     r   r   zAugMixDataset.transform¿   s   € à×Ñ˜QÕr   c                 ó@   — | j                   €|S | j                  |«      S r2   )rd   rm   s     r   Ú
_normalizezAugMixDataset._normalizeÃ   s   € Ø—N‘NÐ*ˆqÐA°·±¸qÓ0AÐAr   c                 óü   — | j                   |   \  }}| j                  |«      g}t        | j                  dz
  «      D ]1  }|j	                  | j                  | j                  |«      «      «       Œ3 t        |«      |fS )Nr   )re   rr   r    rg   Úappendrc   rl   )r   Úirn   ÚyÚx_listÚ_s         r   r0   zAugMixDataset.__getitem__Æ   sr   € Ø�|‰|˜A‰‰ˆˆ1Ø—/‘/ !Ó$Ð%ˆä�t—‘¨Ñ*Ó+ò 	AˆAØ�M‰M˜$Ÿ/™/¨$×*;Ñ*;¸AÓ*>Ó?Õ@ð	Aä�V‹}˜aÐÐr   c                 ó,   — t        | j                  «      S r2   )r'   re   r3   s    r   r4   zAugMixDataset.__len__Î   s   € Ü�4—<‘<Ó Ð r   N)rj   )rB   rC   rD   Ú__doc__r   rf   Úpropertyr   Úsetterrr   r0   r4   rE   r   r   ra   ra   ª   sM   „ ÙMó%òð ñ&ó ð&ð ×Ññ ó ð òBò ó!r   ra   )rz   ÚioÚloggingÚtypingr   ÚtorchÚtorch.utils.dataÚutilsÚdataÚPILr   Úreadersr   Ú	getLoggerrB   r%   r   ÚDatasetr	   ÚIterableDatasetrG   ra   rE   r   r   ú<module>r‰      s�   ðñó 
Û Ý ã ß Ð Ý å "à
ˆ'×
Ñ
˜HÓ
%€ð €ôB9�4—<‘<ô B9ôJM9˜4×/Ñ/ô M9ô`%!�E—K‘K×$Ñ$×,Ñ,õ %!r   