gcan pytorch实现_VGG16网络原理分析与pytorch实现

笔记:VGG16网络原理与pytorch网络实现

在图像去雾、超分辨率、风格迁移等领域,感知损失被广泛使用。而感知损失采用较多的正是VGG16网路,后续虽然出现了残差网络ResNet、密集连接网络DenseNet、快速推理的MobileNet等,VGG16网络(及其变种VGG19等)仍然被研究人员普遍使用。

笔记将从以下3个方面对VGG16网络进行分析:

(1)网络结构分析与训练细节

(2)特点与贡献

(3)pytorch搭建

在这里,我推荐给你们这个深度学习框架原理实战训练营,3天就可以带你从零构建专家级神经网络框架,点击下方插件就可以免费报名哦 ↓ ↓ ↓

1、网络结构分析与训练细节

下面这张图给出了网络的输入输出以及特征图尺寸的变化情况(画的比较粗糙)。(1)左边输入图片的尺寸是224x224x3,然后经过Conv(卷积)和ReLU(激活)得到224x224x3的特征图,这个过程中图片尺寸没有变化,仅仅是通道数从3增加到64;(2)尺寸从224降为112是通过maxpooling实现的,选取kernel_size=2并且stride=2的pooling操作可以让长宽各降低一半;(3)网络的最后端是全连接层,全连接层最后输出1000维的目的是实现1000分类的效果:

下面的表格来自VGG16论文,给出了VGG11、VGG16与VGG19不同的网络搭建方式:

其中ABCDE表示不同深度的网络配置,convx-y中x表示卷积核尺寸,y表示特征通道数,比如conv3-256表示3x3的卷积核并且通道数为256;同理conv1-512表示卷积核3x3通道数为512。

本篇笔记主要分析的是VGG16不用1x1卷积的版本,也就是上述表格中的D。其特性包含下面几个方面:

(1)包含13个卷积层,每个卷积层都不会改变前一层的特征图长和宽;通过Conv可以实现通道数的增加(表格中maxpool放置的位置容易误导读者,让人误以为池化层负责增加通道数)。假设输入图片尺寸为(batch_size, 3, 224, 224),如果希望这一层的输出特征图尺寸为(batch_size, 64, 224, 224),需要使用64个尺寸为3x3并且3个通道的卷积核。

(2)包含5个池化层,分别分布在2或者3次卷积以后。池化层的作用是降低特征图尺寸并且能提高网络抗干扰能力。假设上一层得到的特征图尺寸为(batch_size, 64, 224, 224),选取Max Pooling的核尺寸为2x2,每次移动两个步长,那么得到的输出特征图尺寸为(batch_size, 64, 112, 112)。VGG16选取的是max pooling仅仅是各种池化方式中的一种,类似的池化还有均值池化等。

(3)包含3个全连接层,从现在

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值