美文网首页
批归一化BatchNorm

批归一化BatchNorm

作者: LabVIEW_Python | 来源:发表于2021-01-26 06:36 被阅读0次

    批归一化BatchNorm:用于在深度神经网络中(浅层神经网络只需要输入数据归一化即可),提升数值的稳定性

    • 从而加速学习过程(使用较大学习率)
    • 降低模型对初始值的敏感度
    • 并在一定程度上抑制过拟合
    import paddle
    import paddle.fluid as fluid 
    from paddle.fluid.dygraph.nn import Conv2D,BatchNorm
    from paddle.fluid.initializer import NumpyArrayInitializer
    import numpy as np 
    
    w = np.array([[3,3,3],[1,1,1],[3,3,3]],dtype='float32')
    
    
    with fluid.dygraph.guard():
        bn = BatchNorm(num_channels=3)
        x = fluid.dygraph.to_variable(w)
        y = bn(x)
        print(y)
    

    输出值:

    name tmp_1, dtype: VarType.FP32 shape: [3, 3]   lod: {}
            dim: 3, 3
            layout: NCHW
            dtype: float
            data: [0.707103 0.707103 0.707103 -1.41421 -1.41421 -1.41421 0.707103 0.707103 0.707103]
    
    用Numpy计算BatchNorm的结果: BatchNorm计算过程

    PaddlePaddle的BatchNorm计算结果跟Numpy有细微差别是因为PaddlePaddle的BatchNorm在计算时,加入了一个小项epsilon.

    模型中若有BatchNorm层,则在预测时,直接加载训练时保存的均值和方差,而不使用预测样本的均值和方差

    相关文章

      网友评论

          本文标题:批归一化BatchNorm

          本文链接:https://www.haomeiwen.com/subject/xxtezktx.html