ó
ßüÚ\c           @   sh   d  d l  m Z m Z d  d l Z e j d ƒ Z e j d ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d S(	   iÿÿÿÿ(   t	   serializet   deserializeNt   numpyt   torchc          C   sw   t  j d ƒ }  t j |  ƒ } t | ƒ \ } } | d d k sF t ‚ t | | ƒ } |  | j ƒ  k j ƒ  ss t ‚ d  S(   Ni
   t
   serializert   dask(	   t   npt   arangeR   t   TensorR    t   AssertionErrorR   R   t   all(   t   xt   tt   headert   framest   t2(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_torch.pyt   test_tensor   s    c          C   s‰   t  j d ƒ }  t j |  ƒ } t j | ƒ d | _ t t | ƒ Œ  } | j ƒ  |  k j	 ƒ  sd t
 ‚ | j j ƒ  d k j	 ƒ  s… t
 ‚ d  S(   Ni
   i   (   R   R   R   R   t
   zeros_liket   gradR   R    R   R
   R	   (   R   R   R   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_torch.pyt	   test_grad   s    c          C   sd   t  j d ƒ }  |  j j j ƒ  } t | ƒ \ } } t | | ƒ } t | ƒ t | ƒ k s` t ‚ d  S(   Nt   torchvision(	   t   pytestt   importorskipt   modelst   resnett   resnet18R    R   t   strR	   (   R   t   modelR   R   t   model2(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_torch.pyt   test_resnet   s
    c          C   s|   t  j j d d ƒ }  t j |  d t d t j ƒ} t t | ƒ Œ  } | j	 sT t
 ‚ t  j |  | j ƒ  j ƒ  ƒ sx t
 ‚ d  S(   Ni   i   t   requires_gradt   dtype(   R   t   randomt   randR   t   tensort   Truet   floatR   R    R   R	   t   allcloset   detach_R   (   t   aR   R   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_torch.pyt   test_deserialize_grad$   s
    (   t   distributed.protocolR    R   R   R   R   R   R   R   R   R(   (    (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_torch.pyt   <module>   s   			
		