def instance_normalization(x, index):
with tf.variable_scope("instance_norm"):
depth = x.get_shape()[3]
scale = tf.get_variable("scale" + str(index), [depth],
initializer=tf.random_normal_initializer(mean=1.0, stddev=0.02, dtype=tf.float32))
offset = tf.get_variable("offset" + str(index), [depth],
initializer=tf.random_normal_initializer(mean=0.0, stddev=0.02, dtype=tf.float32))
mean, variance = tf.nn.moments(x, axes=[1, 2], keep_dims=True)
epsilon = 1e-5
inv = tf.rsqrt(variance + epsilon)
normalized = (x - mean) * inv
return scale*normalized + offset
评论列表
文章目录