美文网首页深度学习
TensorFlow 基础(12)VGGNet

TensorFlow 基础(12)VGGNet

作者: zidea | 来源:发表于2019-09-22 21:11 被阅读0次
    awesome-tensorflow

    VGGNet(11-19层)

    在 2014 年,由于 AlexNet 的出现,引起大家都 CNN 的关注,所以牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发出了新的深度卷积神经网络 —— VGGNet,并取得了ILSVRC2014比赛分类项目的第二名(第一名是GoogLeNet,也是同年提出的)和定位项目的第一名。
    深度神经网络的深度可以做的更深也得益于 GPU 出现。

    网络结构

    - VGG由5层卷积层
    - 3层全连接层
    - softmax输出层构成
    - 层与层之间使用max-pooling(最大化池)分开,所有隐层的激活单元都采用ReLU函数。
    

    特点

    我们知道 CNN 一般都包含卷积层、池化层和全连接层,我们按这些层分别说明一下 VGGNet 的特点    
    - 卷积层
        - 在 VGGNet 中尽量多使用 3 x 3 的卷积核来带了更多特征,好处减少参数数量,增加线性。
        - 使用 2 个 3 * 3 的卷积层来代替 5 * 5 卷积层 
        - 使用 3 个 3 * 3 的卷积层来代替 7 * 7 卷积层
    - 池化层
        - 在池化层使用(2,2)的步长处理池化层,为什么用(2,2)表示更小池化层会得到更多![图](https://img.haomeiwen.com/i8207483/edddc2427252f5fe.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    
    # neru feature_map image output
    conv1_1 = tf.layers.conv2d(x_image,32,(3,3),padding='same',activation=tf.nn.relu,name='conv1_1')
    conv1_2 = tf.layers.conv2d(conv1_1,32,(3,3),padding='same',activation=tf.nn.relu,name='conv1_2')
    # 16 * 16
    pooling1 = tf.layers.max_pooling2d(conv1_2,(2,2),(2,2),name='pool1')
    
    conv2_1 = tf.layers.conv2d(pooling1,32,(3,3),padding='same',activation=tf.nn.relu,name='conv2_1')
    conv2_2 = tf.layers.conv2d(conv2_1,32,(3,3),padding='same',activation=tf.nn.relu,name='conv2_2')
    # 8 * 8
    pooling2 = tf.layers.max_pooling2d(conv2_2,(2,2),(2,2),name='pool2')
    
    conv3_1 = tf.layers.conv2d(pooling2,32,(3,3),padding='same',activation=tf.nn.relu,name='conv3_1')
    conv3_2 = tf.layers.conv2d(conv3_1,32,(3,3),padding='same',activation=tf.nn.relu,name='conv3_2')
    # 4 * 4
    pooling3 = tf.layers.max_pooling2d(conv3_2,(2,2),(2,2),name='pool3')
    
    

    相关文章

      网友评论

        本文标题:TensorFlow 基础(12)VGGNet

        本文链接:https://www.haomeiwen.com/subject/jcvuuctx.html