U
    ‰d(  ã                   @   s@   d dl m  mZ G dd„ deƒZdd„ Zddd„Zd	d
„ ZdS )é    Nc                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )ÚTransformerc                 C   s   d S ©N© )Úselfr   r   úA/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/transformations.pyÚ__init__   s    zTransformer.__init__c                 C   s\   |  ¡  ¡ }t |¡r$t ||¡}n&t |¡r<t ||¡}ntd |¡ƒ‚|  ¡  	|¡ d S )NzTransformation {} not found.)
ÚProtoÚSerializeToStringÚCZtransform_existsZrun_transformZworkspace_transform_existsZrun_workspace_transformÚAttributeErrorÚformatÚParseFromString)ÚclsÚtransform_nameÚnetZpbÚoutputr   r   r   ÚrunTransform   s    

zTransformer.runTransformc                    s   ‡ ‡fdd„S )Nc                    s   ˆ   ˆ| ¡S r   )r   ©r   ©r   r   r   r   Ú<lambda>(   ó    z)Transformer.__getattr__.<locals>.<lambda>r   r   r   r   r   Ú__getattr__'   s    zTransformer.__getattr__N)Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   r   r   r   r   r   r      s   

r   c                 C   s    |   ¡  t |   ¡  ¡ ¡¡ d S r   )r   r   r
   Ztransform_fuseNNPACKConvRelur	   r   r   r   r   ÚfuseNNPACKConvRelu+   s    ÿr   Fc                 C   s"   |   ¡  t |   ¡  ¡ |¡¡ d S r   )r   r   r
   Ztransform_optimizeForMKLDNNr	   )r   Ztraining_moder   r   r   ÚoptimizeForMKLDNN1   s    ÿr   c                 C   s    |   ¡  t |   ¡  ¡ ¡¡ d S r   )r   r   r
   Ztransform_fuseConvBNr	   r   r   r   r   Ú
fuseConvBN7   s    ÿr   )F)	Z!caffe2.python._import_c_extensionÚpythonZ_import_c_extensionr
   Úobjectr   r   r   r   r   r   r   r   Ú<module>   s   
