U
    d                     @   s   d dl Zd dlm  m  mZ d dlmZ d dl	m
Z
mZ d dlm  mZ d dlm  m  mZ G dd dejZedkrd dlZd dlZed eddd	d
g e  dS )    N)givensettingsc                   @   sH   e Zd Zef de iejeddddd Z	dd Z
d	d
 ZdS )ShufflenetMemongerTestwith_shapes   N)Zmax_examplesdeadlinec                 C   sp   t |tjdd}| |d d |d d k  tj|d d |d d  tj|d d |d d  d S )Nzgpu_0/stage1_conv_wgpu_0/last_out_L1000r      r   )utilsZtest_shared_grads
shufflenetcreate_shufflenet
assertTruenptestingassert_almost_equal)selfr   gcdcresults r   H/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/models/shufflenet_test.pytest_shufflenet_shared_grads   s    z3ShufflenetMemongerTest.test_shufflenet_shared_gradsc                 C   sl   t tjd}| |d d |d d k  | |d dk oF|d dk tj|d d |d d  d S )Nr   r   r	   
   r   )r
   Ztest_forward_onlyr   r   r   r   r   r   r   r   r   r   r   test_shufflenet_forward_only   s    z3ShufflenetMemongerTest.test_shufflenet_forward_onlyc                 C   sl   t tjd}| |d d |d d k  | |d dk oF|d dk tj|d d |d d  dS )z@
        Test C++ memonger that is only for simple nets
        r   r   r	      r   N)r
   Z test_forward_only_fast_simplenetr   r   r   r   r   r   r   r   r   r   +test_shufflenet_forward_only_fast_simplenet&   s    zBShufflenetMemongerTest.test_shufflenet_forward_only_fast_simplenet)__name__
__module____qualname__r   stZbooleanshuZgcs_cpu_onlyr   r   r   r   r   r   r   r   r      s
   
	r   __main__i  Zcaffe2z--caffe2_log_level=0z#--caffe2_print_blob_sizes_at_exit=0z--caffe2_gpu_memory_tracking=1)Znumpyr   Zcaffe2.python.models.shufflenetpythonmodelsr   Zhypothesis.strategiesZ
strategiesr    Z
hypothesisr   r   Z"caffe2.python.hypothesis_test_utilZhypothesis_test_utilr!   Z0caffe2.python.models.imagenet_trainer_test_utilsZimagenet_trainer_test_utilsr
   ZHypothesisTestCaser   r   ZunittestrandomseedZ	workspaceZ
GlobalInitmainr   r   r   r   <module>   s"   $
