def Batch_normal(input,is_training):
'''定义标准batch_normal层'''
return tf.layers.batch_normalization(inputs=input,epsilon=1e-3,training=is_training)
- 在卷积层将激活函数设置为None。
- 使用batch_normalization。
- 使用激活函数激活。
https://www.sohu.com/a/148103872_723464
def max_pooling_2d(input,size,stride,padding='SAME',name='pooling'):
'''定义最大池化层'''
return tf.nn.max_pool(input,ksize=size,strides=stride,padding=padding,name=name)
def tf_learn_GAVG(x,name):
'''定义全局平均池化层'''
return global_avg_pool(x,name=name)
def avg_pooling_2d(input,name,padding):
'''定义全局平均池化层'''
h,w=input.get_shape().as_list()[1:3]
只能用于tensor来返回shape,但是是一个元组(即“(2,3)”),需要通过as_list()的操作转换成list(即[2,3]).
return tf.nn.avg_pool(input,ksize=[1,h,w,1],strides=[1,h,w,1],name=name,padding=padding)
参考https://blog.csdn.net/Sophia_11/article/details/84640486
输入:
(1)value:四维张量 [batch, height, width, channels],数值类型为:float32,float64, qint8, quint8,qint32
(2)ksize:四个整型值 int 的列表或元组,输入张量 value 的每个维度上的滑动窗口的尺寸大小
(3)strides:四个整型值 int 的列表或元组,输入张量 value 的每个维度上的滑动窗口的步幅长度
(4)padding:字符型参数,“VALID” 或 “SAME”,填充算法,参照 tf.nn.convolution
(5)data_format:字符型参数,“NHWC” 或 “NCHW”,分别代表 [batch, height, width, channels] 和 [batch, height, channels , width]
(6)name:可选参数,操作的名称
返回结果:
(1)对输入张量 value 执行平均池化操作后的输出张量,类型和输入张量 value 相同
————————————————
版权声明:本文为CSDN博主「csdn-WJW」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sdnuwjw/article/details/85275638
def flatten(input,layers=True):
# 定义平铺展开层
if layers:
return tf.layers.flatten(input,name='flatten')
将除了第一维的数据维度相乘,对原 Tensor 进行展平。
else:
units=np.prod([dim.value for dim in input.get_shape()[1:]])
np.prod 连乘操作,将里面所有的元素相乘。
return tf.reshape(input,[-1,units],name='flatten_(reshape)')
def variable_summaries(var,name):
"""
Attach a lot of summaries to a Tensor (for TensorBoard visualization).
:param var: variable to be summarized
:return: None
"""
with tf.name_scope(name):
mean = tf.reduce_mean(var)
tf.summary.scalar('mean', mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.summary.scalar('sparsity',tf.nn.zero_fraction(var))
tf.summary.scalar('stddev', stddev)
tf.summary.scalar('max', tf.reduce_max(var))
tf.summary.scalar('min', tf.reduce_min(var))
tf.summary.histogram('histogram', var)