
    ڧg	                     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          Y/var/www/html/ai-engine/env/lib/python3.11/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II 7LLLMMM'))	%$"44555k4?+q$"2UZPPPQRSI&&& &j#%%c**>%..%%C ,**622FFKKMM!!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+ ++ #sC-(+ 	+
 H%+ #8,+ + 
+ + + + + +" "sCx " " " "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   