caffe中bn层与scale层

    xiaoxiao2022-07-02  122

    转自:https://zhidao.baidu.com/question/621624946902864092.html

     

     

    caffe 中为什么bn层要和scale层一起使用

    这个问题首先你要理解batchnormal是做什么的。它其实做了两件事。 1) 输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。 2)y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。 那么caffe中的bn层其实只做了第一件事。scale层做了第二件事。 这样你也就理解了scale层里为什么要设置bias_term=True,这个偏置就对应2)件事里的beta。   注意: BN与Scale是对数据进行了归一化, 在超分辨率领域,对图像使用BN层的话,如果只针对单一X2或者X3或者X4倍分辨率时候,不使用BN层效果更好,如果数据集中同时包含x2,x3,x4倍分辨率数据,那么加上BN层效果更好 在跨数据域数据转换中,从A域到B域,一定要将A域的BN与Scale的学习率置为0
    最新回复(0)