/usr/local/lib64/python3.6/site-packages/torch/nn/utils/__pycache__
Edit: /usr/local/lib64/python3.6/site-packages/torch/nn/utils/__pycache__/fusion.cpython-36.pyc (1528B)
3
ûEgs ã @ s4 d dl Z d dlZdd„ Zdd„ Zdd„ Zdd „ ZdS )
é Nc C sN | j p
|j stdƒ‚tj| ƒ}t|j|j|j|j|j |j|jƒ\|_|_|S )NzFusion only for eval!)
ÚtrainingÚAssertionErrorÚcopyÚdeepcopyÚfuse_conv_bn_weightsÚweightÚbiasÚrunning_meanÚrunning_varÚeps)ÚconvÚbnZ
fused_conv© r úA/usr/local/lib64/python3.6/site-packages/torch/nn/utils/fusion.pyÚfuse_conv_bn_eval s
r c C s˜ |d krt j|ƒ}|d kr$t j|ƒ}|d kr6t j|ƒ}t j|| ƒ}| || jdgdgt| jƒd ƒ } || | | | }t jj| ƒt jj|ƒfS )Né éÿÿÿÿ) ÚtorchÚ
zeros_likeZ ones_likeÚrsqrtZreshapeÚlenÚshapeÚnnÚ Parameter)Zconv_wZconv_bÚbn_rmÚbn_rvÚbn_epsÚbn_wÚbn_bZbn_var_rsqrtr r r r s
(r c C sN | j p
|j stdƒ‚tj| ƒ}t|j|j|j|j|j |j|jƒ\|_|_|S )NzFusion only for eval!)
r r r r Úfuse_linear_bn_weightsr r r r
r )Zlinearr
Zfused_linearr r r Úfuse_linear_bn_eval s
r c
C sZ |d krt j|ƒ}|t j|| ƒ }| |jdƒ }|| | | } t jj|ƒt jj| ƒfS )Nr r )r r r Z unsqueezer r )
Zlinear_wZlinear_br r r r r Zbn_scaleZfused_wZfused_br r r r ( s
r )r r r r r r r r r r Ú
s