
    ёi2                        S SK Jr  S SKJrJrJr  \(       a  S SKJr  S SKJ	r	  S SK
Jr  SSKJrJr  \S   rS SKrS SKrS SKrS S	KJr  S SKrS S
KJr  S SKJr  / r " S S\\S      5      r " S S\5      rg)    )annotations)TYPE_CHECKINGAnyLiteralN)_DTypeLiteral)
_Transform   )_ImageBackend_ImageDataTypetraintest)Image)_check_exists_and_download)Datasetc                     \ rS rSr% SrSrSr\S-   rSr\S-   r	Sr
\S	-   rS
r\S-   rSrS\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'         S!             S"S jjrS#S jr    S$S jrS%S jrS rg)&MNIST)   a	  
Implementation of `MNIST <http://yann.lecun.com/exdb/mnist/>`_ dataset.

Args:
    image_path (str|None, optional): Path to image file, can be set None if
        :attr:`download` is True. Default: None, default data path: ~/.cache/paddle/dataset/mnist.
    label_path (str|None, optional): Path to label file, can be set None if
        :attr:`download` is True. Default: None, default data path: ~/.cache/paddle/dataset/mnist.
    mode (str, optional): Either train or test mode. Default 'train'.
    transform (Callable|None, optional): Transform to perform on image, None for no transform. Default: None.
    download (bool, optional): Download dataset automatically if
        :attr:`image_path` :attr:`label_path` is not set. Default: True.
    backend (str|None, optional): Specifies which type of image to be returned:
        PIL.Image or numpy.ndarray. Should be one of {'pil', 'cv2'}.
        If this option is not set, will get backend from :ref:`paddle.vision.get_image_backend <api_paddle_vision_get_image_backend>`,
        default backend is 'pil'. Default: None.

Returns:
    :ref:`api_paddle_io_Dataset`. An instance of MNIST dataset.

Examples:

    .. code-block:: python

        >>> import itertools
        >>> import paddle.vision.transforms as T
        >>> from paddle.vision.datasets import MNIST


        >>> mnist = MNIST()
        >>> print(len(mnist))
        60000

        >>> for i in range(5):  # only show first 5 images
        ...     img, label = mnist[i]
        ...     # do something with img and label
        ...     print(type(img), img.size, label)
        ...     # <class 'PIL.Image.Image'> (28, 28) [5]


        >>> transform = T.Compose(
        ...     [
        ...         T.ToTensor(),
        ...         T.Normalize(
        ...             mean=[127.5],
        ...             std=[127.5],
        ...         ),
        ...     ]
        ... )

        >>> mnist_test = MNIST(
        ...     mode="test",
        ...     transform=transform,  # apply transform to every image
        ...     backend="cv2",  # use OpenCV as image transform backend
        ... )
        >>> print(len(mnist_test))
        10000

        >>> for img, label in itertools.islice(iter(mnist_test), 5):  # only show first 5 images
        ...     # do something with img and label
        ...     print(type(img), img.shape, label)  # type: ignore
        ...     # <class 'paddle.Tensor'> [1, 28, 28] [7]
mnistz$https://dataset.bj.bcebos.com/mnist/t10k-images-idx3-ubyte.gz 9fb629c4189551a2d022fa330f9573f3t10k-labels-idx1-ubyte.gz ec29112dd5afa0611ce80d1b7f02629ctrain-images-idx3-ubyte.gz f68b3c2dcbeaaa9fbdd348bbdeb94873train-labels-idx1-ubyte.gz d53e105ee54ea40749a09fcbcd1e9432_DatasetModemode
str | None
image_path
label_path_Transform[Any, Any] | None	transformr
   backendr   dtypelistlabelsimagesNc                L   UR                  5       S;   d
   SU 35       eUc  [        R                  R                  5       nUS;  a  [	        SU 35      eX`l        UR                  5       U l        Xl        U R                  cf  U(       d   S5       eUS:X  a  U R                  OU R                  nUS:X  a  U R                  OU R                  n[        XXR                  U5      U l        X l        U R                  cz  U(       d   S5       eU R                  S:X  a  U R                  OU R                   n	U R                  S:X  a  U R"                  OU R$                  n
[        X)XR                  U5      U l        X@l        U R)                  5         [        R*                  " 5       U l        g )Nr   z*mode should be 'train' or 'test', but got )pilcv2z4Expected backend are one of ['pil', 'cv2'], but got z?image_path is not set and downloading automatically is disabledr   z?label_path is not set and downloading automatically is disabled)lowerpaddlevisionget_image_backend
ValueErrorr%   r   r!   TRAIN_IMAGE_URLTEST_IMAGE_URLTRAIN_IMAGE_MD5TEST_IMAGE_MD5r   NAMEr"   TRAIN_LABEL_URLTEST_LABEL_URLTRAIN_LABEL_MD5TEST_LABEL_MD5r$   _parse_datasetget_default_dtyper&   )selfr!   r"   r   r$   downloadr%   	image_url	image_md5	label_url	label_md5s              \/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/vision/datasets/mnist.py__init__MNIST.__init__~   s    zz|  
 
 	? 8v>	? 

 ?mm557G.(FwiP  JJL	$??" Q8 )-$$T=P=P  )-$$T=P=P  9y))XDO %??" Q8
 99' $$((  99' $$(( 
 9y))XDO # 	--/
    c           	        / U l         / U l        [        R                  " U R                  S5       nUR                  5       n[        R                  " U R                  S5       nUR                  5       nSnSnSn[        R                  " XU5      u  ppU[        R                  " U5      -  nSnSn[        R                  " XU5      u  nnU[        R                  " U5      -  n UU:  a  GO.S[        U5      -   S-   n[        R                  " UX]5      nU[        R                  " U5      -  nXa-  nS[        X-  U-  5      -   S-   n[        R                  " UX75      n[        R                  " UXU-  45      R                  S5      nU[        R                  " U5      -  n[        U5       Hg  nU R                   R                  UUS S 24   5        U R                  R                  [        R                   " UU   /5      R                  S5      5        Mi     GM6  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nrbr   z>IIIIz>II>Bfloat32int64)r)   r(   gzipGzipFiler!   readr"   structunpack_fromcalcsizestrnpreshapeastyperangeappendarray)r=   buffer_size
image_fileimg_buf
label_filelab_buf
step_label
offset_imgmagic_byte_img	magic_img	image_numrowscols
offset_labmagic_byte_lab	magic_lab	label_num	fmt_labelr(   
fmt_imagesimages_tempr)   is                          rC   r;   MNIST._parse_dataset   s   ]]4??D1Z oo'Gt5$//+

 ")393E3E"Z40	d foon==

!&'-'9'9"Z($	9 foon==
!Y. #c+&6 6 <I#//	7OF&//)"<<J-J!$s;+=+D'E!E!KJ"("4"4"G#K  ZZ#k$;%?fY'  &//*"==J";/**6!Q$<8**HHfQi[188A 0# - 6 2155 21s$   2H<"F8H+H<+
H9	5H<<
I
c                   U R                   U   U R                  U   p2[        R                  " USS/5      nU R                  S:X  a$  [
        R                  " UR                  S5      SS9nU R                  b  U R                  U5      nU R                  S:X  a  X#R                  S5      4$ UR                  U R                  5      UR                  S5      4$ )N   r+   uint8L)r   rL   )
r)   r(   rT   rU   r%   r   	fromarrayrV   r$   r&   )r=   idximagelabels       rC   __getitem__MNIST.__getitem__   s     {{3'S)9u

52r(+<<5 OOELL$9DE>>%NN5)E<<5 ,,w///||DJJ'g)>>>rF   c                ,    [        U R                  5      $ )N)lenr(   )r=   s    rC   __len__MNIST.__len__  s    4;;rF   )r%   r&   r!   r)   r"   r(   r   r$   )NNr   NTN)r!   r    r"   r    r   r   r$   r#   r>   boolr%   z_ImageBackend | NonereturnNone)d   )rt   intr~   z,tuple[_ImageDataType, npt.NDArray[np.int64]])r~   r   )__name__
__module____qualname____firstlineno____doc__r6   
URL_PREFIXr3   r5   r8   r:   r2   r4   r7   r9   __annotations__rD   r;   rw   r{   __static_attributes__ rF   rC   r   r   )   s    >@ D7J"==N7N"==N7N #??O8O #??O8O
**LL "&!%$15(,>0>0 >0 	>0
 />0 >0 &>0 
>0@0d??	5?" rF   r   )r   znpt.NDArray[np.int64]c                  X    \ rS rSrSrSrSr\S-   rSr\S-   r	Sr
\S	-   rS
r\S-   rSrSrg)FashionMNISTi  a	  
Implementation of `Fashion-MNIST <https://github.com/zalandoresearch/fashion-mnist>`_ dataset.

Args:
    image_path (str, optional): Path to image file, can be set None if
        :attr:`download` is True. Default: None, default data path: ~/.cache/paddle/dataset/fashion-mnist.
    label_path (str, optional): Path to label file, can be set None if
        :attr:`download` is True. Default: None, default data path: ~/.cache/paddle/dataset/fashion-mnist.
    mode (str, optional): Either train or test mode. Default 'train'.
    transform (Callable, optional): Transform to perform on image, None for no transform. Default: None.
    download (bool, optional): Whether to download dataset automatically if
        :attr:`image_path` :attr:`label_path` is not set. Default: True.
    backend (str, optional): Specifies which type of image to be returned:
        PIL.Image or numpy.ndarray. Should be one of {'pil', 'cv2'}.
        If this option is not set, will get backend from :ref:`paddle.vision.get_image_backend <api_paddle_vision_get_image_backend>`,
        default backend is 'pil'. Default: None.

Returns:
    :ref:`api_paddle_io_Dataset`. An instance of FashionMNIST dataset.

Examples:

    .. code-block:: python

        >>> import itertools
        >>> import paddle.vision.transforms as T
        >>> from paddle.vision.datasets import FashionMNIST


        >>> fashion_mnist = FashionMNIST()
        >>> print(len(fashion_mnist))
        60000

        >>> for i in range(5):  # only show first 5 images
        ...     img, label = fashion_mnist[i]
        ...     # do something with img and label
        ...     print(type(img), img.size, label)
        ...     # <class 'PIL.Image.Image'> (28, 28) [9]


        >>> transform = T.Compose(
        ...     [
        ...         T.ToTensor(),
        ...         T.Normalize(
        ...             mean=[127.5],
        ...             std=[127.5],
        ...         ),
        ...     ]
        ... )

        >>> fashion_mnist_test = FashionMNIST(
        ...     mode="test",
        ...     transform=transform,  # apply transform to every image
        ...     backend="cv2",  # use OpenCV as image transform backend
        ... )
        >>> print(len(fashion_mnist_test))
        10000

        >>> for img, label in itertools.islice(iter(fashion_mnist_test), 5):  # only show first 5 images
        ...     # do something with img and label
        ...     print(type(img), img.shape, label)  # type: ignore
        ...     # <class 'paddle.Tensor'> [1, 28, 28] [9]
zfashion-mnistz,https://dataset.bj.bcebos.com/fashion_mnist/r    bef4ecab320f06d8554ea6380940ec79r    bb300cfdad3c16e7a12a480ee83cd310r    8d4fb7e6c68d591d4c3dfef9ec88bf0dr    25c81989df183df01b3e8a0aad5dffber   N)r   r   r   r   r   r6   r   r3   r5   r8   r:   r2   r4   r7   r9   r   r   rF   rC   r   r     sT    >@ D?J"==N7N"==N7N #??O8O #??O8OrF   r   )
__future__r   typingr   r   r   numpy.typingnptpaddle._typing.dtype_liker   #paddle.vision.transforms.transformsr   ru   r
   r   r   rM   rP   numpyrT   PILr   r.   paddle.dataset.commonr   	paddle.ior   __all__tupler   r   r   rF   rC   <module>r      sk    # . .7>5?+L      < 
Y GECDE Y xJ95 J9rF   