将beta和gamma传递给批量标准化

时间:2018-04-23 23:49:17

标签: tensorflow deep-learning batch-normalization

我有一个非常具体的用例,我需要手动传递批量规范(gamma和beta)的仿射变换参数。据我所知,tf.contrib.layers.batch_normtf.layers.batch_normalization都不允许这样做(我相信这个相关问题的接受答案是不正确的,至少对于最新版本的Tensorflow来说:How to give beta and gamma in tf.contrib.layers.batch_norm)。

有没有办法在没有手动定义使用tf.nn.batch_normalization的自定义批处理规范操作的情况下完成此操作(我希望Tensorflow能够在可能的情况下维护均值和方差的移动平均值)?< / p>

1 个答案:

答案 0 :(得分:0)

如果您要传递Beta和Gamma的特定值,则可以这样修改其初始化程序:

tf.layers.batch_normalization(beta_initializer=tf.constant_initializer(your_beta),
                              gamma_initializer=tf.constant_initializer(your_gamma)
                              trainable=??)

请注意可训练的参数。这将使模型可以学习Beta和Gamma的最佳值,或将其固定为您提供的值。