5、VGG16神经网络

def Batch_normal(input,is_training):
    '''定义标准batch_normal层'''
    return tf.layers.batch_normalization(inputs=input,epsilon=1e-3,training=is_training)

  1. 在卷积层将激活函数设置为None。
  2. 使用batch_normalization。
  3. 使用激活函数激活。

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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值