§
    ù²ÅjÒ	  ã                   ó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	  G d„ de	¦  «        Z
dS )	é    )ÚAnyÚCallableÚOptionalÚTupleNé   )Ú
transformsé   )ÚVisionDatasetc                   ó¤   ‡ — e Zd ZdZ	 	 	 	 	 	 ddedeeeef         d	ed
ee         dee         deddfˆ fd„Zdedee	e	f         fd„Z
defd„Zˆ xZS )ÚFakeDataaî  A fake dataset that returns randomly generated images and returns them as PIL images

    Args:
        size (int, optional): Size of the dataset. Default: 1000 images
        image_size(tuple, optional): Size if the returned images. Default: (3, 224, 224)
        num_classes(int, optional): Number of classes in the dataset. Default: 10
        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.
        random_offset (int): Offsets the index-based random seed used to
            generate each image. Default: 0

    éè  ©é   éà   r   é
   Nr   ÚsizeÚ
image_sizeÚnum_classesÚ	transformÚtarget_transformÚrandom_offsetÚreturnc                 ó†   •— t          ¦   «                              ||¬¦  «         || _        || _        || _        || _        d S )N)r   r   )ÚsuperÚ__init__r   r   r   r   )Úselfr   r   r   r   r   r   Ú	__class__s          €úNC:\Projects\Historical\venv\Lib\site-packages\torchvision/datasets/fakedata.pyr   zFakeData.__init__   sG   ø€ õ 	‰Œ×Ò 9Ð?OÐÑPÔPÐPØˆŒ	Ø&ˆÔØ$ˆŒØ*ˆÔÐÐó    Úindexc                 ó:  — |t          | ¦  «        k    rt          | j        j        › d�¦  «        ‚t	          j        ¦   «         }t	          j        || j        z   ¦  «         t	          j        | j	        Ž }t	          j
        d| j        dt          j        ¬¦  «        d         }t	          j        |¦  «          t          j        ¦   «         |¦  «        }| j        �|                      |¦  «        }| j        �|                      |¦  «        }||                     ¦   «         fS )zœ
        Args:
            index (int): Index

        Returns:
            tuple: (image, target) where target is class_index of the target class.
        z index out of ranger   )r	   )r   Údtype)ÚlenÚ
IndexErrorr   Ú__name__ÚtorchÚget_rng_stateÚmanual_seedr   Úrandnr   Úrandintr   ÚlongÚset_rng_stater   Ú
ToPILImager   r   Úitem)r   r    Ú	rng_stateÚimgÚtargets        r   Ú__getitem__zFakeData.__getitem__(   sü   € ð •C˜‘I”IÒÐÝ ¤Ô 7ÐLÐLÐLÑMÔMÐMÝÔ'Ñ)Ô)ˆ	ÝÔ˜% $Ô"4Ñ4Ñ5Ô5Ð5ÝŒk˜4œ?Ð+ˆÝ”˜q $Ô"2¸ÅUÄZÐPÑPÔPÐQRÔSˆÝÔ˜IÑ&Ô&Ð&ð &�jÔ#Ñ%Ô% cÑ*Ô*ˆØŒ>Ð%Ø—.’. Ñ%Ô%ˆCØÔ Ð,Ø×*Ò*¨6Ñ2Ô2ˆFà�F—K’K‘M”MÐ!Ð!r   c                 ó   — | j         S )N)r   )r   s    r   Ú__len__zFakeData.__len__B   s
   € ØŒyÐr   )r   r   r   NNr   )r%   Ú
__module__Ú__qualname__Ú__doc__Úintr   r   r   r   r   r2   r4   Ú__classcell__)r   s   @r   r   r   	   sþ   ø€ € € € € ðð ð" Ø+8ØØ(,Ø/3Øð+ð +àð+ð ˜#˜s C˜-Ô(ð+ð ð	+ð
 ˜HÔ%ð+ð # 8Ô,ð+ð ð+ð 
ð+ð +ð +ð +ð +ð +ð" ð "¨¨s°C¨x¬ð "ð "ð "ð "ð4˜ð ð ð ð ð ð ð ð r   r   )Útypingr   r   r   r   r&   Ú r   Úvisionr
   r   © r   r   ú<module>r>      sŠ   ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€à Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð:ð :ð :ð :ð :ˆ}ñ :ô :ð :ð :ð :r   