U
    ‰d 	  ã                   @   s2   d Z ddlZddlmZmZ G dd„ dejƒZdS )zunittest for ModelHelper classé    N)ÚbrewÚmodel_helperc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚModelHelperTestc                 C   s~   t  d¡}tj|dddddi fdddd		 d
|j ¡ _| ¡ }t  d¡}| |¡ |  	|j ¡ jd
¡ |  	|j
 ¡ jd
¡ d S )NÚ	test_origÚinputÚconvé   é   ÚMSRAFillé   r   ©Údim_inÚdim_outZweight_initÚkernelZstrideÚpadZasync_schedulingÚtest_new)r   ÚModelHelperr   r   ÚnetÚProtoÚtypeÚGetCompleteNetÚConstructInitTrainNetfromNetÚ
assertTrueÚparam_init_net)ÚselfÚmodelr   Úmodel2© r   úC/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/model_helper_test.pyÚtest_get_complete_net_type   s$    
÷

z*ModelHelperTest.test_get_complete_net_typec           	      C   sD  t  d¡}tj|dddddi fdddd		}tj||d
dddd}t ||d¡}tj||dddd}t ||d¡ | ¡ }t  d¡}| 	|¡ |j
}|j
}t| ¡ j| ¡ jƒD ]*\}}|jd |_|  ||d ||¡¡ q®|j}|j}t| ¡ j| ¡ jƒD ]\}}|  ||d ||¡¡ qü|  ttt|jƒƒttt|jƒƒ¡ d S )Nr   r   r   r   r	   r
   r   r   r   Zconv_bngü©ñÒMbP?F)ÚepsilonZis_testZ	conv_reluÚpredé   é
   )r   r   Úsoftmaxr   z/param_init_netzop mismatch between {}
 and {}
)r   r   r   r   Z
spatial_bnZreluZfcr$   r   r   r   Úzipr   ÚopZ
debug_infoÚassertEqualÚformatr   ÚsortedÚmapÚstrZexternal_inputs)	r   r   r   r!   r   r   Znet2Zop1Zop2r   r   r   Útest_get_complete_net   sP    
÷

  
ÿ  
ÿþz%ModelHelperTest.test_get_complete_netN)Ú__name__Ú
__module__Ú__qualname__r   r,   r   r   r   r   r   
   s   r   )Ú__doc__ZunittestZcaffe2.pythonr   r   ZTestCaser   r   r   r   r   Ú<module>   s   