
    g                         d dl Zd dlZd dlmZ d dlmZ  G d d          Z G d dej        j	                  Z
 G d d	ej        j	                  ZddefdZdS )    N)
DataLoader)DistributedTypec                   "    e Zd ZddZd Zd ZdS )	RegressionDataset      @   Nc                 T   t           j                            |          }|| _        |                    |f                              t           j                  | _        || j        z  |z   |                    d|f                              t           j                  z   | _        d S )N)sizeg?)scaler   )	nprandomdefault_rnglengthnormalastypefloat32xy)selfabr   seedrngs         Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/accelerate/test_utils/training.py__init__zRegressionDataset.__init__   s    i##D))&++222:>>TVa#**3fY*"G"G"N"Nrz"Z"ZZ    c                     | j         S N)r   )r   s    r   __len__zRegressionDataset.__len__   s
    {r   c                 8    | j         |         | j        |         dS )Nr   r   r"   )r   is     r   __getitem__zRegressionDataset.__getitem__    s    VAYTVAY///r   )r   r   r	   N)__name__
__module____qualname__r   r    r$    r   r   r   r      sJ        [ [ [ [  0 0 0 0 0r   r   c                   (     e Zd Zd fd	ZddZ xZS )RegressionModel4XPUr   Fc                 ~   t                                                       t          j                            t          j        ddg                                                    | _        t          j                            t          j        ddg                                                    | _        d| _	        d S )Nr   r   T
superr   torchnn	Parametertensorfloatr   r   first_batchr   r   r   double_output	__class__s       r   r   zRegressionModel4XPU.__init__%   s    ##EL!Q$8$8$>$>$@$@AA##EL!Q$8$8$>$>$@$@AAr   Nc                     | j         r8t          d| j        j         d| j        j         d|j                    d| _         || j        d         z  | j        d         z   S )NModel dtype: , . Input dtype: Fr   r3   printr   dtyper   r   r   s     r   forwardzRegressionModel4XPU.forward+   sa     	%X$&,XX$&,XXqwXXYYY$D46!9}tvay((r   r   r   Fr   r%   r&   r'   r   r?   __classcell__r6   s   @r   r*   r*   $   sQ                   ) ) ) ) ) ) ) )r   r*   c                   (     e Zd Zd fd	ZddZ xZS )RegressionModelr   Fc                 v   t                                                       t          j                            t          j        |                                                    | _        t          j                            t          j        |                                                    | _        d| _	        d S )NTr,   r4   s       r   r   zRegressionModel.__init__3   s}    ##ELOO$9$9$;$;<<##ELOO$9$9$;$;<<r   Nc                     | j         r8t          d| j        j         d| j        j         d|j                    d| _         || j        z  | j        z   S )Nr8   r9   r:   Fr;   r>   s     r   r?   zRegressionModel.forward9   sY     	%X$&,XX$&,XXqwXXYYY$D46zDF""r   r@   r   rA   rC   s   @r   rE   rE   2   sQ                   # # # # # # # #r   rE      
batch_sizec                     ddl m} ddlm} |                    d          ddd} |d|	          }|d
                             d          }d t          |          D             fd}|                    |dg d          } fd}	t          |d
         d|	d          }
t          |d         d|	d          }|
|fS )Nr   )load_dataset)AutoTokenizerzbert-base-casedz!tests/test_samples/MRPC/train.csvztests/test_samples/MRPC/dev.csv)train
validationcsv)
data_filesrM   labelc                     i | ]\  }}||	S r(   r(   ).0r#   vs      r   
<dictcomp>z&mocked_dataloaders.<locals>.<dictcomp>I   s    :::DAq1a:::r   c                 v     | d         | d         dd d          }d| v rfd| d         D             |d<   |S )	N	sentence1	sentence2T
max_length)
truncationrY   paddingrQ   c                      g | ]
}|         S r(   r(   )rS   llabel_to_ids     r   
<listcomp>zAmocked_dataloaders.<locals>.tokenize_function.<locals>.<listcomp>Q   s     K K KAQ K K Kr   labelsr(   )examplesoutputsr^   	tokenizers     r   tokenize_functionz-mocked_dataloaders.<locals>.tokenize_functionK   se    )[!8K#8TVZdp
 
 
 h K K K K'9J K K KGHr   T)rW   rX   rQ   )batchedremove_columnsc                     j         t          j        k    r                    | ddd          S                     | dd          S )NrY      pt)r[   rY   return_tensorslongest)r[   rj   )distributed_typer   XLApad)ra   acceleratorrc   s    r   
collate_fnz&mocked_dataloaders.<locals>.collate_fn[   sG    '?+>>>==<C`d=eee}}Xy}NNNr   r   )shufflerp   rI   rN   F   )	datasetsrK   transformersrL   from_pretrainedunique	enumeratemapr   )ro   rI   rK   rL   rP   rs   
label_listrd   tokenized_datasetsrp   train_dataloadereval_dataloaderr^   rc   s   `           @@r   mocked_dataloadersr}   @   sH   %%%%%%******--.?@@I>NoppJ|Ej999H'"))'22J::Ij$9$9:::K      "::: &  O O O O O O ""4W"=tXbopqqq !3L!A5]gtuvvvO_,,r   )rH   )numpyr   r.   torch.utils.datar   accelerate.utils.dataclassesr   r   r/   Moduler*   rE   intr}   r(   r   r   <module>r      s         ' ' ' ' ' ' 8 8 8 8 8 80 0 0 0 0 0 0 0) ) ) ) )%(/ ) ) )# # # # #eho # # #%- %- %- %- %- %- %- %-r   