在TensorFlow中,批量规范化参数包括beta
,gamma
,moving mean
和moving variance
。但是,对于初始化这些参数,tf.contrib.layers.batch_norm(*args, **kwargs)
中只有一个名为param_initializers
的参数,根据文档,它包含beta
,gamma
,moving mean
的可选初始值设定项和moving variance
。
我们如何使用param_initializers
初始化这些参数?
答案 0 :(得分:3)
以下是使用Tensorflow 1.0的batch normalization的方法:
import tensorflow as tf
batch_normalization = tf.layers.batch_normalization
... (define the network)
net = batch_normalization(net)
... (define the network)
如果你想设置参数,就这样做:
net = batch_normalization(net,
beta_initializer=tf.zeros_initializer(),
moving_variance_initializer=tf.ones_initializer())
这是传递任意多个非关键字参数args
和任意多个关键字参数kwargs
的python方法。例如:
def test(*args, **kwargs):
print("#" * 80)
print(args)
print("#" * 80)
print(kwargs)
test(1, 2, 42, 3.141, 'foo', a=7, b=3, c='bla')
给出
################################################################################
(1, 2, 42, 3.141, 'foo')
################################################################################
{'a': 7, 'c': 'bla', 'b': 3}