Keras 如何设置批量标准化层的权重?

Keras 如何设置批量标准化层的权重?,keras,batch-normalization,Keras,Batch Normalization,如何设置KERA的批次标准化层的权重 我有点被文件弄糊涂了 权重:初始化权重。两个Numpy数组的列表,形状:[(输入_形,),(输入_形,)]请注意,此列表的顺序为[gamma,beta,mean,std] 我们需要所有四种[伽马,贝塔,平均值,性病]?是否有一种只使用[gamma,beta]设置权重的方法?是的,您需要所有四个值。回想一下批处理规范化的作用。其目标是规范化(即平均值=0,标准偏差=1)进入各层的输入。为此,您需要(mean,std)。因此,规范化激活可被视为对进行线性变换的子

如何设置KERA的批次标准化层的权重

我有点被文件弄糊涂了

权重:初始化权重。两个Numpy数组的列表,形状:[(输入_形,),(输入_形,)]请注意,此列表的顺序为[gamma,beta,mean,std]


我们需要所有四种[伽马,贝塔,平均值,性病]?是否有一种只使用[gamma,beta]设置权重的方法?

是的,您需要所有四个值。回想一下批处理规范化的作用。其目标是规范化(即平均值=0,标准偏差=1)进入各层的输入。为此,您需要
(mean,std)
。因此,规范化激活可被视为对进行线性变换的子网络的输入:

y = gamma*x_norm + beta
(gamma,beta)
非常重要,因为它们补充了
(mean,std)
,因为
(gamma,beta)
有助于从标准化激活中恢复原始激活。如果不这样做或在不考虑其他参数的情况下更改任何一个参数,则有可能更改激活的语义。这些原始激活现在可以与您的下一层处理。对所有层重复此过程

编辑:


另一方面,我认为值得尝试首先计算大量图像的平均值和标准差,并将其作为您的平均值和标准差进行输入。请注意,您计算平均值和标准差的图像与您的训练数据来自相同的分布。我认为这应该是可行的,因为批标准化通常有两种计算平均值的模式,一种是在批上维护的运行平均值,另一种是全局平均值(至少在Caffe中,请参见)。

谢谢,但我的问题更具体到keras批标准化层,我只是通过标签指出了这一点。发现我可以使用
K.set\u value
来实现这一点。@Prasanna你能告诉我你做了什么吗?什么是
K
?我试图分别设置gamma、beta、running_mean和running_variance的值。@Chhaganlaal
K
是Keras后端。我认为它是来自keras导入后端K的