一般化されたバッチ正規化関数をTensorflowに構築しようとしています。バッチ正規化の次元
私は非常に親切なこのarticleのバッチ正規化を学びます。
Iはスケールとベータ変数の大きさに問題がある:私の場合のバッチにおける正規iは、畳み込み層の出力として有する従って場合、各畳み込み層の各アクティベーションに適用されますサイズとtersor:
[57,57,96]
は私が正しい、規模とベータは、畳み込み層の出力と同じ寸法を有していることが必要ですか?ここ
は、私の関数のプログラムは動作しますが、tf.nn.batch_normalization
のドキュメントから正しい
def batch_normalization_layer(batch):
# Calculate batch mean and variance
batch_mean, batch_var = tf.nn.moments(batch, axes=[0, 1, 2])
# Apply the initial batch normalizing transform
scale = tf.Variable(tf.ones([batch.get_shape()[1],batch.get_shape()[2],batch.get_shape()[3]]))
beta = tf.Variable(tf.zeros([batch.get_shape()[1],batch.get_shape()[2],batch.get_shape()[3]]))
normalized_batch = tf.nn.batch_normalization(batch, batch_mean, batch_var, beta, scale, 0.0001)
return normalized_batch