《动手学深度学习》5、9.1(计算机视觉)学习小结

目录

  • 第五章的卷积神经网络概述
  • 为什么play kaggle的CIFAR-10竞赛
  • CIFAR-10竞赛经验和教训
  • 其他吐槽

第五章的卷积神经网络概述

第五章介绍的卷积神经网络大多是在imagenet竞赛上的历年冠军。从书中可以看到卷积网络从刚开始的lenet,到引入图像增广的Alexnet,到并行的goognet,以及模块化的VGG,NiN,再到跳跃传输x,拟合f(x)-x的残差网络,以及在此基础上变换通道数的稠密网络。
每个网络都各有特色,都提出了不同的网络架构思路,并取得了一定的成就!

为什么play kaggle的CIFAR-10竞赛

根据如何使用本书以及B站的视频(2h的),李沐在最后讲了CIFAR-10是绕不过去的,另外第五章后的第六章开始是一个新领域(自然语言处理),故我打算play一下CIFAR-10以作为一个里程碑。

CIFAR-10竞赛经验和教训

  • 数据增强很重要
    在没有作数据增强时,我训练的DenseNet在训练集和测试集上的结果在5个epoch上一直稳定在0.1,这意味着什么,CIFAR-10一共10个类别,也就是说我训练的模型等于瞎猜。这一度让我怀疑哪里代码写错了。但事实上并不是代码的问题,而是因为我没有做图像增强!
    在CIFAR-10这个图片数据中,有绿青蛙,有棕色青蛙等,所以颜色上的处理会获得很大的收益。在我仅仅做了一个rgb->bgr的图片增广后,模型测试集上正确率上升到60%以上!

  • 通过文件路径一批批读取图片
    CIFAR-10毕竟是一个8年前的比赛,所以5万张33232的图片在现在直接读进来也不会有问题。但是还是会占用一点内存,如果换成现在的图像数据集或者图像质量再高一点,那么直接读进来都是不可想象的。

  • 之后还是要尽可能使用现有的套件
    mxnet似乎只提供了较有限的图像数据dataset的定义方式,我不知道怎么在直接读入读入全部图片的情况下和label结合生成dataset,以至于后面我要自己写一个可迭代类,以及用opcv去做图像增广,遇到了各种问题,但好在都解决了,也算是让我加深了对mxnet的框架以及计算机视觉处理步骤的理解!如果老老实实按照mxnet提供的方式读取数据并且形成dataset,那么后续的操作其实都已经打包好了,就像是很多个选项其实你只要点点就行了!

  • 及时保存
    kaggle平台如果不保存版本,那你在期间的下载包、解压缩等操作都会被清掉,一夜回到解放前。

  • 应该把kaggle当成一个提供计算的平台而不是编辑的平台
    kaggle的使用体验讲真的有点差,首先慢、然后会中途卡死、会奔溃导致你根本打不开项目,所以还是在本地跑通,然后提交jupyter notebook用kaggle的计算资源。

  • 其他kaggle使用心得
    所有路径全部/kaggle/…写绝对路径,不会出错。
    解压的文件路径不用写文件名

其他吐槽

当我发现自己在参加一个8年前的比赛时(别人的提交都是8年前的),讲道理我有点气愤,书中的模型也都是5年前的经典网络,但想到微积分几百年前都已经有了,现在还要学,算是稍微释怀了一点。那最近深度学习都发展得怎么样了,又都有什么模型?这时我想到了最近的球球大作战,星际等深度强化学习,也算是有点了解了吧。

你可能感兴趣的:(深度学习,计算机视觉,学习)