在上一篇文章的基础之上,总结一下论文中提出的训练技巧和测试技巧。上一篇文章参考:VGG论文笔记--VGGNet网络架构演变[VGG16,VGG19]

一、训练技巧

技巧1:Scale jittering 尺度扰动

 数据增强

  • 方法一:针对位置

训练阶段: ① 按比例缩放图片至最小边为S

                   ② 随机位置裁剪出224*224区域

                   ③ 随机进行水平翻转

解释:例如一张图片尺寸为512*1024,设置S=256,那么该图片的最短边512就要变成256,1024边自动等比例进行缩放。代码实现时,注意是resize((256)),而不是resize(256,256) 。缩放完成后,随机位置裁剪出224*224的区域,最后进行随机水平翻转。

  • 方法二:针对颜色

修改RGB通道的像素值,实现颜色扰动

S设置方法:

  • 1. 固定值:固定为256,或384
  • 2. 随机值:每个batch的S在[256, 512],实现尺度

技巧2:预训练模型初始化

1. 深度加深时,用浅层网络初始化     B,C,D,E用A模型初始化

 作者在文章中,写到这样一段话:It is worth noting that after the paper submission we found that it is possible to initialise the weights without pre-training by using the random initialisation procedure of Glorot & Bengio (2010)

 什么意思呢?就是说作者团队在提交实验结果以后,发现用Xavier初始化可以在不进行预训练的情况下初始化权重。当然,现在我们用到最多的应该是BN层初始化

2. Multi-scale训练时,用小尺度初始化

  • S=384时,用S=256模型初始化
  • S=[256, 512]时,用S=384模型初始化

二、测试技巧

多尺度测试

Step 1 图片等比例缩放至最短边为Q

设置三个Q,对图片进行预测,取平均

  • 方法1 当S为固定值时: Q = [S-32, S, S+32]
  • 方法2 当S为随机值时: Q = (S_min, 0.5*(S_min + S_max), S_max)

解释:例如当我们的S设置为256时,Q=[224,256,288],如果我们的S为[256,512],那么Q=[256,384,512]

Step 2

第一步进行完以后,我们得到了3个Q,然后作者实验了以下三种方法。最终方法三取得了较好的效果。

  • 方法1 Dense(稠密测试):将FC层转换为卷积操作,变为全卷积网络,sum pool,得到1*1000
  • 方法2 Multi-crop:对图片进行Multi-crop,裁剪大小为224*224,并水平翻转 1张图,缩放至3种尺寸,然后每种尺寸裁剪出50张图片;一共150张 =2*3* 5*5

原文:While we believe that in practice the increased computation time of multiple crops does not justify the potential gains in accuracy, for reference we also evaluate our networks using 50 crops per scale (5 × 5 regular grid with 2 flips), for a total of 150 crops over 3 scales.

  • 方法3 Multi-crop & Dense

  • 1 . mulit - crop 优 于 dense
  • 2 . mulit - crop 结 合 dense,可形成互补,达到最优结果。

三、实验结果分析

Single scale evaluation

S为固定值时:Q = S, S为随机值时:Q = 0.5(S_min + S_max)

结论:

  • 1. 误差随深度加深而降低,当模型到达19层时,误差饱和,不再下降
  • 2. 增加1*1有助于性能提升
  • 3. 训练时加入尺度扰动,有助于性能提升
  • 4. B模型中,3*3替换为5*5卷积,top1 下降7%

Multi scale evaluation

方法1 :   Q = [S-32, S, S+32]

方法2: Q = (S_min, 0.5*(S_min + S_max),S_max)

结 论 :测试时采用尺度扰动有助于性能提升

VGG16、VGG19网络架构及模型训练 tricks :训练技巧、测试技巧相关推荐

  1. VGG扫盲帖:利用pytorch实现VGG16网络架构

    上图为VGG16的网络架构可视化图,白色部分为卷积层,红色部分为池化层 一.预训练权重下载 当然编译器可以自动下载,只要把download设置为True,下载速度因人而异.建议自己下载,然后手动加载权 ...

  2. vggNet网络学习(网络架构及代码搭建)

    原论文 翻译链接:VERY DEEP CONVOLUTIONAL NETWORKSFOR LARGE-SCALE IMAGE RECOGNITION(VGGnet论文翻译(附原文))_机器学习我不学习 ...

  3. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构进行迁移学习

    DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构迁移学习 目录 数据集 输出结果 设计思路 1.基模型 2.思路导图 核心代码 更多输出 数据集 Datas ...

  4. SSD: Single Shot MultiBox Detector 模型fine-tune和网络架构

    前言 博主在上一篇中提到了两种可能的改进方法.其中方法1,扩充类似数据集,详见Udacity Self-Driving 目标检测数据集简介与使用 ,由于一些原因,并未对此数据集做过多探索,一次简单训练 ...

  5. 【目标检测】SSD: Single Shot MultiBox Detector 模型fine-tune和网络架构

    前言 博主在上一篇中提到了两种可能的改进方法.其中方法1,扩充类似数据集,详见Udacity Self-Driving 目标检测数据集简介与使用 ,由于一些原因,并未对此数据集做过多探索,一次简单训练 ...

  6. 【CVPR2022】DAFormer: 改进领域自适应语义分割的网络架构和训练策略

    Code:https://github.com/lhoyer/DAFormer Paper: https://openaccess.thecvf.com/content/CVPR2022/papers ...

  7. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning

    DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning 输出结果   False: input_1 False: block1_conv1 F ...

  8. AI模型训练无需购买设备啦!Tesar超算网络让AI模型训练更便捷!

    现代科技的发展可以用日新月异来形容,新技术的出现也是层出不穷.一个眨眼的功夫,一门足以改变世界的应用可能就被发明出来了,当然也有可能一个遥遥领先的企业瞬间被超越.处在风云变化时代,最重要的就是时间,就 ...

  9. [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构

    [源码解析] 模型并行分布式训练Megatron (2) - 整体架构 文章目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要 0x01 启动 1.1 分 ...

最新文章

  1. mysql 全值匹配什么意思
  2. iOS开发 -------- AFNetworking使用中遇到的小问题
  3. 在php里让字体划过变色,鼠标划过字体时如何用css来实现字体变色?(代码实测)...
  4. Spring中解决事务以及异步注解失效
  5. 【clickhouse】clickhouse 表引擎之 null
  6. 使用Spring Session和Redis解决分布式Session跨域共享问题
  7. ASP.NET3.5下的MSChart图表控件使用
  8. CNKI翻译助手-连接数据库失败
  9. 常见的大数据术语表(中英对照)
  10. 不使用设备管理器卸载外设驱动的方法(转)
  11. 微软公司软件测试工程师,【其它微软中国(Microsoft)工资】软件测试工程师待遇-看准网...
  12. php正则匹配中文和英文字母,PHP正则匹配中文字母数字正则的表达式
  13. 青岛软控为机电软一体化企业的PLM建设树立样板
  14. 茅指数成分股投资收益可视化
  15. 仿泡团影视网源码 苹果cmsV8版本 电脑端+影视模块
  16. Excel找回打开密码过程
  17. 讯飞智能录音笔SR502帮职场人
  18. GraphPad Prism使用教程
  19. linux 修改群组名称,linux常用命令系列—chgrp-修改所属群组
  20. 【虚幻引擎UE】UE5 可编辑动态样条线轨迹及AI跟随路径移动(含工程源码)

热门文章

  1. 关于EXCEL下载后无法打开的问题
  2. Oracle集群管理-集群资源crsd异常启动案例,crsd资源offline
  3. iOS 跳转App Store 评论、评分
  4. eks安装kubectl
  5. 阿里云镜像站NTP——Windows11操作系统配置方法
  6. GO 语言基础语法一 (快速入门 Go 语言)
  7. 互联网金融系列-支付清算体系介绍-上
  8. zzulioj1166实数取整(指针专题)
  9. 小d课堂商业级全栈多端项目-小滴云在线教育平台-xiaoecf
  10. 关闭小米路由器防火墙 放行端口