在TensorFlow中,批处理规范化参数包括beta、gamma、moving mean和moving variance。但是,为了初始化这些参数,tf.contrib.layers.batch_norm(*args, **kwargs)中只有一个名为param_initializers的参数,根据文档,它包含beta、gamma、moving mean和moving variance的可选初始化器。
如何使用param_initializers初始化这些参数?
发布于 2017-02-19 09:02:16
下面是如何在Tensorflow 1.0中使用批归一化:
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
这是传递任意多个非关键字参数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}https://stackoverflow.com/questions/42236903
复制相似问题