【问题标题】:Batch normalization initializer in TensorFlowTensorFlow 中的批量标准化初始化器
【发布时间】:2017-07-03 09:03:33
【问题描述】:

在 TensorFlow 中,批量标准化参数包括 betagammamoving meanmoving variance。然而,为了初始化这些参数,tf.contrib.layers.batch_norm(*args, **kwargs) 中只有一个参数称为param_initializers,根据文档,它包含betagammamoving meanmoving variance 的可选初始化程序。

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

【问题讨论】:

标签: tensorflow


【解决方案1】:

以下是在 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}

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 2017-03-03
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2019-06-16
    • 2020-09-24
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多