本人在模仿tensorflow的batch normalization的向前传播的时候,使用批标准化公式:
均值和方差采用训练好的模型中提取的moving_mean和moving_variance,套入该公式中发现,结果与tensorflow的运行的结果不一致, 后来发现tensorflow的batch normalization的层对应的输入和输出是线性的(y=a*x+b),最后通过通过计算a和b参数,来模仿tensorflow的batch normalization。
有没有哪位大神知道模型中的moving_mean,和moving_variance是怎么使用的?(直接使用moving_mean,moving_variance单独使用一个batch normalization层计算结果与套用公式计算的结果是一样的)
解决:tf中moving_variance对应的是均方差,因此公式中不需要开方,E的取值为0.001