CNN经典模型——VGGNet

  VGGNet出自论文《Very Deep Convolutional Networks For Large-Scale Image Recognition》
  VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法。它的缺点在于,参数量有140M之多,需要更大的存储空间,但是这个模型很有研究价值。
  模型的名称——“VGG”代表了牛津大学的Oxford Visual Geometry Group,该小组隶属于1985年成立的Robotics Research Group,该Group研究范围包括了机器学习到移动机器人。
  VGG各种网络的网络结构如表1所示。

表1 VGG各种网络结构

在这里插入图片描述
  其中,网络结构D就是著名的VGG16,它包含了13个卷积层和3个全连层;网络结构E就是著名的VGG19,它包含了16个卷积层和3个全连层。
  VGG结构由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max-pooling(最大池化)分开,所有隐层的激活单元都采用ReLU函数。VGG最大的贡献就是证明了卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。
  在VGG中,使用了3个3×3卷积核来代替7×7卷积核,使用了2个3×3卷积核来代替5×5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。作者认为两个3×3的卷积堆叠获得的感受野大小,相当一个5×5的卷积;而3个3×3卷积的堆叠获取到的感受野相当于一个7×7的卷积。这样可以增加非线性映射,也能很好地减少参数(例如7×7的参数为49个,而3个3×3的参数为27)。
  VGG网络探索了卷积神经网络的深度与其性能之间的关系,成功地构筑了16-19层深的卷积神经网络,证明了增加网络的深度能够在一定程度上影响网络最终的性能,使错误率大幅下降,同时拓展性又很强,迁移到其它图片数据上的泛化性也非常好。到目前为止,VGG仍然被用来提取图像特征。
  以VGG16网络为例,介绍其各层的处理过程,VGG16的网络结构如图1所示,也可点击查看更加形象化的VGG16网络

在这里插入图片描述

图1 VGG16的网络结构

  VGG16各层的处理过程:

  1. 输入224×224×3的图片,经64个3×3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224×224×64;
  2. 作max pooling(最大化池化),池化单元尺寸为2×2(效果为图像尺寸减半),池化后的尺寸变为112×112×64;
  3. 经128个3×3的卷积核作两次卷积+ReLU,尺寸变为112×112×128;
  4. 作2×2的max pooling池化,尺寸变为56×56×128;
  5. 经256个3×3的卷积核作三次卷积+ReLU,尺寸变为56×56×256;
  6. 作2×2的max pooling池化,尺寸变为28×28×256;
  7. 经512个3×3的卷积核作三次卷积+ReLU,尺寸变为28×28×512;;
  8. 作2×2的max pooling池化,尺寸变为14×14×512;
  9. 经512个3×3的卷积核作三次卷积+ReLU,尺寸变为14×14×512;
  10. 作2×2的max pooling池化,尺寸变为7×7×512;
  11. 与两层1×1×4096,一层1×1×1000进行全连接+ReLU(共三层);
  12. 通过softmax输出1000个预测结果。

  VGG网络的优缺点:
  VGG优点: VGG网络的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3×3)和最大池化尺寸(2×2);几个小滤波器(3×3)卷积层的组合比一个大滤波器(5×5或7×7)卷积层好;验证了通过不断加深网络结构可以提升性能。
  VGG缺点:VGG耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个被广泛应用于机器学习和深度学习的开源框架,它提供了丰富的工具和库来构建和训练神经网络模型。其中,CNN卷积神经网络)是一种特别适用于图像处理任务的神经网络结构,而VGGNet19是其中一个经典CNN模型。 在进行图像风格转化任务时,我们可以利用VGGNet19来实现。图像风格转化是一种将一张图像的内容与另一张图像的风格相结合的技术,常用于艺术创作和图像处理领域。在这个实战项目中,我们可以使用Jupyter Notebook来编写并运行我们的代码。 首先,我们需要准备两张输入图片,一张作为内容图像,一张作为风格图像。然后,我们可以使用VGGNet19模型来提取内容图像和风格图像的特征表示。接着,我们需要定义一个损失函数,该损失函数可以度量内容图像与生成图像之间的内容差异,以及风格图像与生成图像之间的风格差异。最后,我们可以使用梯度下降等优化算法来最小化损失函数,从而生成新的图像,使得它既保留了内容图像的内容特征,又融合了风格图像的风格特征。 在Jupyter Notebook中,我们可以逐步编写和调试这些代码,并及时查看生成的图像效果。通过这个实战项目,我们不仅能够深入理解CNN模型和图像风格转化的原理,还能够掌握如何使用TensorFlow和Jupyter Notebook进行实际的深度学习任务。这将为我们在图像处理和艺术创作领域带来更多的应用和创新可能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值