tf.contrib.layers.convolution2d
图层如何不要求用户明确更新moving_statistics?
我问的原因是因为我最近要求Why do we need to explicitly update the moving_mean and moving_variance in TensorFlow's Batch normalization in tf.contrib.layers.batch_norm?试图找出如何使用tf.contrib.layers.batch_norm
而不必明确更新moving_statistics。
但是,我注意到有一个不同的图层tf.contrib.layers.convolution2d允许您提供规范化图层(比如说normalizer_fn = tf.contrib.layers.batch_norm
),但不需要显式更新移动统计信息(正如我在其他问题上的详细说明)。那个黑暗魔法怎么样?即卷积2如何能够跳过(似乎)不可避免的要求?
理想情况下,我想创建一个类似的API /接口,这样我就不需要显式更新moving_stats,并且像这个convolution2d层一样干净。
答案 0 :(得分:0)
tf.contrib.layers.convolution2d
对批量规范化或其统计信息不了解或做任何特别的事情。如果你看一下实现,它所做的就是应用你选择的规范化函数。来自tensorflow/contrib/layers/python/layers/layers.py
:
if normalizer_fn is not None:
normalizer_params = normalizer_params or {}
outputs = normalizer_fn(outputs, **normalizer_params)
因此卷积层与您的问题无关。它只是相关的批量标准化的实现。对于问题的其余部分,请参阅我的回答: Why do we need to explicitly update the moving_mean and moving_variance in TensorFlow's Batch normalization in tf.contrib.layers.batch_norm?
希望有所帮助!