
    0Fie                    d   d dl mZ d dlZd dlmZmZmZmZmZ  ej	        ej
                  d             Z ej	        ej
                  d             Z ej	        ej        j                  d             Z ej	        ej        j                  d             Z eej        j                   dS )    )annotationsN)dask_deserializedask_serializedeserializeregister_generic	serializec                   | j         }|r7t          |                                                                           \  }}n$t          |                                           \  }}d|i}| j        Ct          | j                                                  \  }}|t          |          d|d<   ||z  }||d<   | j        j        |d<   ||fS )N
sub-header)headerstartgradrequires_graddevice)r   r   detachnumpyr   lenr   type)trequires_grad_
sub_headerframesr   grad_headergrad_framess          :lib/python3.11/site-packages/distributed/protocol/torch.pyserialize_torch_Tensorr      s    _N 2&qxxzz'7'7'9'9::
FF&qwwyy11
FJ'Fv#,QV\\^^#<#< [$/#f++FFv+,F?x}F86>    c                   |                      dd          r?| d         d         }|d |         ||d          }}t          | d         d         |          }nd }t          | d         |          }| d         dk    r2t          j        |          }| d         r|                    d	          }n#t          j        || d         | d         
          }|t          j        |          |_        |S )Nr   Fr   r   r
   r   cpur   T)datar   r   )getr   torch
from_numpyr   tensorr   )r   r   ir   r   xr   s          r   deserialize_torch_Tensorr&   !   s    zz&%   6N7#$RaRj&*6&>(3[AAF<(&11Ah5  Q/" 	'  &&AL6(+6/;R
 
 
 !$''Hr   c                n    t          |                                           \  }}d|i}| j        |d<   ||fS )Nr
   r   )r   r   r   )pr   r   r   s       r   serialize_torch_Parametersr)   8   s<    "188::..JJ'FoF?6>r   c                |    t          | d         |          }t          j                            || d                   S )Nr
   r   )r   r   )r   r!   nn	Parameter)r   r   r   s      r   deserialize_torch_Parametersr-   @   s6    F<(&11A81F?4KLLLr   )
__future__r   r!   distributed.protocol.serializer   r   r   r   r   registerTensorr   r&   r+   r,   r)   r-   Module r   r   <module>r4      s:   " " " " " "               &&  '&$ 5<((  )(, +,,  -, 58-..M M /.M
   ! ! ! ! !r   