
    {-j                        d dl mZ d dlmZmZmZ d dlZd dlZd dl	m
Z
 d dlmZ erd dlmZ d dlmZ ed         Zg ZdZd	Zg d
Z G d de          ZdS )    )annotations)TYPE_CHECKINGAnyLiteralN)_check_exists_and_download)Dataset)_DTypeLiteraltraintestz:http://paddlemodels.bj.bcebos.com/uci_housing/housing.data d4accdce7a25600298819f8e28e8d593)CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATc                  \    e Zd ZU dZded<   ded<   ded<   	 	 	 dddZdddZddZd dZdS )!
UCIHousinga  
    Implementation of `UCI housing <https://archive.ics.uci.edu/ml/datasets/Housing>`_
    dataset

    Args:
        data_file(str|None): path to data file, can be set None if
            :attr:`download` is True. Default None.
        mode(str): 'train' or 'test' mode. Default 'train'.
        download(bool): whether to download dataset automatically if
            :attr:`data_file` is not set. Default True.

    Returns:
        Dataset: instance of UCI housing dataset.

    Examples:

        .. code-block:: pycon

            >>> import paddle
            >>> from paddle.text.datasets import UCIHousing

            >>> class SimpleNet(paddle.nn.Layer):
            ...     def __init__(self):
            ...         super().__init__()
            ...
            ...     def forward(self, feature, target):
            ...         return paddle.sum(feature), target

            >>> paddle.disable_static()

            >>> uci_housing = UCIHousing(mode='train')

            >>> for i in range(10):
            ...     feature, target = uci_housing[i]
            ...     feature = paddle.to_tensor(feature)
            ...     target = paddle.to_tensor(target)
            ...
            ...     model = SimpleNet()
            ...     feature, target = model(feature, target)
            ...     print(feature.shape, target.numpy())
            paddle.Size([]) [24.]
            paddle.Size([]) [21.6]
            paddle.Size([]) [34.7]
            paddle.Size([]) [33.4]
            paddle.Size([]) [36.2]
            paddle.Size([]) [28.7]
            paddle.Size([]) [22.9]
            paddle.Size([]) [27.1]
            paddle.Size([]) [16.5]
            paddle.Size([]) [18.9]

    _UciHousingDataSetModemode
str | None	data_filer	   dtypeNr   TdownloadboolreturnNonec                N   |                                 dv sJ d|             |                                 | _        || _        | j        .|s
J d            t          |t          t
          d|          | _        |                                  t          j                    | _	        d S )Nr
   z*mode should be 'train' or 'test', but got z>data_file is not set and downloading automatically is disableduci_housing)
lowerr   r    r   URLMD5
_load_datapaddleget_default_dtyper!   )selfr    r   r"   s       `/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/text/datasets/uci_housing.py__init__zUCIHousing.__init__m   s     zz||  
 
 
 
 ?>>
 
 
 JJLL	">!  P 8 83]H DN
 	-//


       皙?feature_numintratiofloatc                T   t          j        | j        d          }|                    |j        d         |z  |          }|                    d          |                    d          |                    d          |j        d         z  }}}t          |dz
            D ]0}|d d |f         ||         z
  ||         ||         z
  z  |d d |f<   1t          |j        d         |z            }| j
        dk    r|d |         | _        d S | j
        dk    r||d          | _        d S d S )N )sepr   )axis   r   r   )npfromfiler    reshapeshapemaxminsumranger5   r   data)	r.   r4   r6   rE   maximumsminimumsavgsioffsets	            r/   r+   zUCIHousing._load_data   s6   {4>s333||DJqM[8+FFHH!HHH!HHH!Htz!}, !(
 {Q'' 	N 	NAqqq!t*tAw.8A;!3LMDAJJTZ]U*++9WfWDIIIY&  VWWDIII ! r1   idx)tuple[npt.NDArray[Any], npt.NDArray[Any]]c                    | j         |         }t          j        |d d                                       | j                  t          j        |dd                                        | j                  fS )N)rE   r=   arrayastyper!   )r.   rK   rE   s      r/   __getitem__zUCIHousing.__getitem__   sf     y~xSbS	""))$*55rxI8
 8

&

 	r1   c                *    t          | j                  S )N)lenrE   )r.   s    r/   __len__zUCIHousing.__len__   s    49~~r1   )Nr   T)r    r   r   r   r"   r#   r$   r%   )r2   r3   )r4   r5   r6   r7   r$   r%   )rK   r5   r$   rL   )r$   r5   )	__name__
__module____qualname____doc____annotations__r0   r+   rQ   rT    r1   r/   r   r   3   s         3 3j !    !%'.	0 0 0 0 04& & & & &         r1   r   )
__future__r   typingr   r   r   numpyr=   r,   paddle.dataset.commonr   	paddle.ior   numpy.typingnptpaddle._typing.dtype_liker	   r   __all__r)   r*   feature_namesr   rZ   r1   r/   <module>re      s   # " " " " " . . . . . . . . . .      < < < < < <       6777777$_5
B(  "m m m m m m m m m mr1   