您的位置:首页 > 其它

tensorflow图片归一化之tf.layers.batch_normalization/tf.nn.batch_normalization/tf.contrib.layers.batch_norm

2017-08-22 19:11 483 查看
import tensorflow as tf
import numpy as np
a=np.array([[5.,8.,2.],[7.,9.,1.]])
a=np.expand_dims(a,axis=0)

a=tf.constant(a,dtype=tf.float32)
a_mean, a_var = tf.nn.moments(a, axes=[0,1],keep_dims=True)
b=tf.rsqrt(a_var)
c=(a-a_mean)*b
d=tf.layers.batch_normalization(a,training=True)
e=tf.nn.batch_normalization(a,a_mean,a_var,offset=None,scale=1,variance_epsilon=0)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
a_value,b_value,c_value,d_value,e_value=sess.run([a,b,c,d,e])
sess.close()


对比:

import tensorflow as tf
a=tf.constant([1.,2.,3.,4.,7.,5.,8.,4.,6.],shape=(1,3,3,3))
a_mean, a_var = tf.nn.moments(a, axes=[1,2],keep_dims=True)
b=tf.rsqrt(a_var)
c=(a-a_mean)*b
d=tf.layers.batch_normalization(a,training=True)
e=tf.nn.batch_normalization(a,a_mean,a_var,offset=None,scale=1,variance_epsilon=0)
f=tf.contrib.layers.batch_norm(a,is_training=True)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
mean,var=sess.run([a_mean,a_var])
a_value,b_value,c_value,d_value,e_value,f_value=sess.run([a,b,c,d,e,f])

sess.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: