TensorFlow中的批量标准化初始化程序

时间:2017-02-14 21:50:52

标签: tensorflow

在TensorFlow中,批量规范化参数包括betagammamoving meanmoving variance。但是,对于初始化这些参数,tf.contrib.layers.batch_norm(*args, **kwargs)中只有一个名为param_initializers的参数,根据文档,它包含betagammamoving mean的可选初始值设定项和moving variance

我们如何使用param_initializers初始化这些参数?

1 个答案:

答案 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

这是传递任意多个非关键字参数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}