【深度学习课程第二课笔记】

383 阅读2分钟
原文链接: m.zjurl.cn

深度学习课程第二课笔记

完整的代码地址见文末。

通过 卷积神经网络 来进行图片分类

通过 CNN 来进行图片识别,目前 CNN 可以说是最好的方法,新的胶囊网络可能会颠覆,所以所有的知识都是会发展的。

第一个任务:Dogs vs Cats

数据说明:

25,000 个训练样本

12,500 个测试样本

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

第一个模型

我们第一个模型使用 resnet34 ,2015 ImageNet 大赛的冠军,模型的详细信息 resnet models

深度学习课程第二课笔记

结果分析

下面分析一下结果

  1. 正确的

  2. 错误的

  3. 最正确的(正确分类概率值最大)

  4. 最错误的(错误分类概率值最大)

  5. 最模棱两可的(0.5 的概率)

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

如何选择 学习率

学习率是一个非常重要的参数,学习率选择太大,可能震荡,太小又会收敛太慢,因此我们需要有方法来选择合适的学习率。

fastai 中选择学习率的方法来自 Cyclical Learning Rates for Training Neural Networks ,本头条号中之写过该文章的阅读笔记,欢迎关注浏览。

深度学习课程第二课笔记

深度学习课程第二课笔记

提高模型

我们通过数据增强的方式来提高模型,通过对原图进行一些变化

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

微调 以及 不同的学习率

我们在上面已经在最后一层调试好了,下面我们要开始去调试其他层参数,frozen_layer 为之前的卷积层

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

深度学习课程第二课笔记

训练步骤总结

  1. 开始数据增强功能,设置 precompute=True

  2. 使用 lr_find() 方法来寻找最大的 learning rate,在此 lr 下,还能显著的降低 loss

  3. 使用预训练的模型来训练模型最后一层,大概 1-2 epoches

  4. 使用 lr 变化的方法来训练最后一层,大概 2-3 epoches

  5. 解锁所有卷积层

  6. 通过 differential learning rates 来训练网络

  7. 再次使用 lr_find()

  8. 设置 cycle_mult=2 再次训练整个网络,直到过拟合

深入理解我们第一个模型

tfms 是 transformations 的缩写,tfms_from_model 能够帮助我们对图片进行 缩放、裁剪、正则化。

深度学习课程第二课笔记

以上就是本次课程的全部。

课程完整的 jupyter notebook 地址可以在原文中看到。

本文是 fastai 课程的第二课,欢迎持续关乎。

你的鼓励是我继续写下去的动力,期待我们共同进步。

原文地址:https://www.zybuluo.com/zhuanxu/note/1046935