小编Cae*_*rst的帖子

tf.nn.fused_batch_norm 返回的方差与 tf.nn.moments 不同

当我尝试比较 tf.nn.fused_batch_norm 的方差输出和 tf.nn.moments 的方差输出时,对于相同的输入,我没有相同的值。

import numpy as np
import tensorflow as tf
tf.reset_default_graph()
inputs = tf.placeholder(shape=[None,4,4,1], dtype=tf.float32)
mean1, var1 = tf.nn.moments(inputs, [0,1,2])
_, mean2, var2 = tf.nn.fused_batch_norm( \
                inputs, scale=[1.], offset=[0.], \
                mean=None, variance=None, epsilon=1e-5, \
                data_format='NHWC', is_training=True, \
                name='reference')

val = np.random.rand(1,4,4,1)
mean3 = tf.reduce_mean(inputs, [0, 1, 2])
mean_sq3 = tf.reduce_mean(tf.square(inputs), [0, 1, 2])
var3 = mean_sq3 - tf.square(mean3)
var_eps1 = var3 + 1e-5
var_eps2 = var3 + np.sqrt(1e-5)
with tf.Session() as sess:
    mean_val, var_val = sess.run([mean1, var1], …
Run Code Online (Sandbox Code Playgroud)

tensorflow

2
推荐指数
1
解决办法
852
查看次数

标签 统计

tensorflow ×1