VGG16实现分类任务

VGG是2014年由牛津大学著名研究组VGG(Visual Geometry Group)提出,斩获当年ImageNet竞赛中定位任务第一名和分类任务第二名。

原理图

原理简述

例如有张224x224的RGB图片,我们让他通过两个卷积核为3的卷积层,再通过最大池化层**(核尺寸为2,步距为2)**。至于卷积层的输入输出维度,参考下图,我们一般常用VGG16模型,最终用多个FC实现分类,也可将FC换成卷积核为1的卷积层

数据集

同样选用本人常用的海贼王数据集来测试,可以根据个人需求修改。

下面提供一个简单数据集。

Kaggle的鸟儿分类数据集,共315个分类

https://www.kaggle.com/gpiosenka/100-bird-species

可以用kaggle命令选择下载

kaggle datasets download -d gpiosenka/100-bird-species

数据预处理

讲图片预resize为224x224的图片,并进行随机翻转,可参考图像增广

https://www.quarkhackers.space/2021/10/15/%E5%9B%BE%E5%83%8F%E5%A2%9E%E5%B9%BF/

最终转为Tensor,并进行归一化处理。

参考代码

transforms.Compose([transforms.RandomResizedCrop(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

训练结果

结果分析

在训练过程,针对此数据集,VGG16的学习率不宜过高,过高会出现loss不收敛

在loss为0.01时结果如下

VGG网络acc可达到百分之90以上,只是对于小数据集而言,模型过于繁重,可选用层数少的模型,并且在后面3层FC,可根据个人需求修改。

完整代码链接

https://github.com/JiaZhengJingXianSheng/VGG16

VGG16实现分类任务相关推荐

  1. tensorflow迁移学习:VGG16花朵分类

    转自:https://blog.csdn.net/weixin_41770169/article/details/80330581 github地址:https://github.com/126921 ...

  2. VGG16迁移学习实现

    VGG16迁移学习实现 本文讨论迁移学习,它是一个非常强大的深度学习技术,在不同领域有很多应用.动机很简单,可以打个比方来解释.假设想学习一种新的语言,比如西班牙语,那么从已经掌握的另一种语言(比如英 ...

  3. tensorflow微调vgg16 程序代码汇总

    一.[深度学习图像识别课程]tensorflow迁移学习系列:VGG16花朵分类 转自:https://blog.csdn.net/weixin_41770169/article/details/80 ...

  4. 【人工智能项目】卷积神经网络图片分类框架

    [人工智能项目]卷积神经网络图片分类框架 本次硬核分享当时做图片分类的工作,主要是整理了一个图片分类的框架,如果想换模型,引入新模型,在config中修改即可.那么走起来瓷!!! 整体结构 confi ...

  5. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  6. 最详细的FCN论文笔记

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-81.html 文:Jonathan Long,Evan She ...

  7. 《深度学习之PyTorch物体检测实战》—读书笔记

    随书代码 物体检测与PyTorch 深度学习 为了赋予计算机以人类的理解能力与逻辑思维,诞生了人工智能(Artificial Intelligence, AI)这一学科.在实现人工智能的众多算法中,机 ...

  8. 【学习日记】使用百度深度学习平台进行深度学习

    最近,一直在自学深度学习.一边学习理论,一遍学习编程.在做CNN的时候,手头的笔记本电脑就吃不消了,运行的速度明显跟不上.本来想买一台带好点的显卡,可是调研了一下,带NVIDIA 1080的差不多要1 ...

  9. 综述笔记 | 一些弱监督语义分割论文

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 这里的弱监督信息为image-level的类别信息,即没有像素级的语义分割标签,而仅有图像 ...

最新文章

  1. 黑裙安装linux环境,Linux学习笔记(一) ---- 安装Linux系统
  2. OpenLayers中地图缩放级别的设置方法
  3. Understanding Web Internals--The flow of Messages
  4. 详细描述一下 Elasticsearch 更新和删除文档的过程。
  5. c mysql 返回自增id_mysql返回自增id
  6. C语言真题考研pdf,中财信息学院C语言程序设计1999年考研真题.pdf
  7. [转]网络安全设备Bypass功能介绍及分析 - [网络编程]
  8. OWASP zap 代理设置
  9. 发货单分期发货分期收款
  10. 近几年CVPR图像压缩总结
  11. 国内主要的量化交易平台
  12. 【现成工具】java获取国家法定节假日包含指定月份节假日和周末
  13. Redis——过期时间/过期回收策略
  14. Excel数据透视表: GetPivotData
  15. 【火同学】OPencv学习笔记——滑动条的创建和使用
  16. 计算机基础_程序是怎样跑起来的_04_有棱有角的内存
  17. struct dst_entry *dst
  18. AI落地制造业:智能机器人应具备这4种能力
  19. 【SLAM学习】ORB-SLAM2-大体框架(OpenVSLAM)
  20. React (fetch redux初识 state action reducer getState dispatch .subscribe 取消监听 ActionTypes Action Crea)

热门文章

  1. 对比WebFlux和WebMVC (为什么使用WebFlux)
  2. Box2D一:基础知识
  3. 【简单DP】CF1420 C1
  4. 按图搜索商品(拍立淘)
  5. 百度无人驾驶商业化加速,阿波龙已成全球车企自动化转型中坚平台
  6. 计算机英语新词的认知语义阐释论文,汉语言文学-网络流行语的认知语义阐释-毕业论文格式范文(2)-优度********网...
  7. 【测绘程序设计】——大地主题解算
  8. 2020年终总结 : 乘风破浪
  9. Bios设置引起linux卡界面,根据显示的BIOS信息来处理电脑无法启动故障的方法
  10. java 1.8 SteamAPI认识