深度学习实战第二课
fast-ai
完整的代码地址见文末。
通过 卷积神经网络 来进行图片分类
通过 CNN 来进行图片识别,目前 CNN 可以说是最好的方法,新的胶囊网络可能会颠覆,所以所有的知识都是会发展的。
第一个任务:Dogs vs Cats
数据说明:
25,000 个训练样本
12,500 个测试样本
第一个模型
我们第一个模型使用 resnet34 ,2015 ImageNet 大赛的冠军,模型的详细信息resnet models
结果分析
下面分析一下结果
- 正确的
- 错误的
- 最正确的(正确分类概率值最大)
- 最错误的(错误分类概率值最大)
- 最模棱两可的(0.5的概率)
如何选择 学习率
学习率是一个非常重要的参数,学习率选择太大,可能震荡,太小又会收敛太慢,因此我们需要有方法来选择合适的学习率。
fastai中选择学习率的方法来自Cyclical Learning Rates for Training Neural Networks
提高模型
我们通过数据增强的方式来提高模型,通过对原图进行一些变化
微调 以及 不同的学习率
我们在上面已经在最后一层调试好了,下面我们要开始去调试其他层参数,frozen_layer 为之前的卷积层
训练步骤总结
- 开始数据增强功能,设置precompute=True
- 使用 lr_find() 方法来寻找最大的 learning rate,在此 lr 下,还能显著的降低 loss
- 使用预训练的模型来训练模型最后一层,大概 1-2 epoches
- 使用lr变化的方法来训练最后一层,大概 2-3 epoches
- 解锁所有卷积层
- 通过 differential learning rates 来训练网络
- 再次使用 lr_find()
- 设置 cycle_mult=2 再次训练整个网络,直到过拟合
深入理解我们第一个模型
tfms 是 transformations 的缩写,tfms_from_model 能够帮助我们对图片进行 缩放、裁剪、正则化。
以上就是本次课程的全部。
课程完整的 jupyter notebook 地址。
本文是 fastai 课程的第二课,欢迎持续关乎。
你的鼓励是我继续写下去的动力,期待我们共同进步。