diff --git a/zh/dl1.md b/zh/dl1.md index d409ad91d6b0e39572601b50d2047f2a30204131..4cf49001370d94300d25d9e1eafc822b10668fc1 100644 --- a/zh/dl1.md +++ b/zh/dl1.md @@ -131,9 +131,9 @@ learn.fit (0.01, 3) ## Fast.ai 库[ [22:24](https://youtu.be/IPBSB1HLNLo%3Ft%3D22m24s) ] -* 该库采用了他们可以找到的所有最佳实践和方法 - 每次出现看起来很有趣的论文时,他们会对其进行测试,如果它适用于各种数据集,并且他们可以弄清楚如何调整它,它会在库中实现。 +* 该库采用了我们可以找到的所有最佳实践和方法 - 每次出现看起来很有趣的论文时,我们会对其进行测试,如果它适用于各种数据集,并且我们可以弄清楚如何调整它,它会在库中实现。 * Fast.ai 将所有这些策略的最佳实践打包,并且大部分时间都会找出自动处理事物的最佳方法。 -* Fast.ai 位于名为 PyTorch 的库之上,这是一个由 Facebook 编写的非常灵活的深度学习,机器学习 GPU 计算库。 +* Fast.ai 位于名为 PyTorch 的库之上,后者是一个由 Facebook 编写的非常灵活的深度学习,机器学习 GPU 计算库。 * 大多数人比 PyTorch 更熟悉 TensorFlow,但 Jeremy 现在知道的大多数顶级研究人员已经转向 PyTorch。 * Fast.ai 非常灵活,您可以根据需要尽可能多地使用所有这些策略的最佳实践。 在任何时候都很容易使用并编写自己的数据增强,损失函数,网络架构等,我们将在本课程中学习所有内容。 diff --git a/zh/dl2.md b/zh/dl2.md index ab93f6de4eef662690bff2385316b0aebb983936..776fbd66b3f392c36dd48807fbd8dc3d1a5e6b7a 100644 --- a/zh/dl2.md +++ b/zh/dl2.md @@ -57,7 +57,7 @@ ![](../img/1_vsXrd010HEYLVfoe2F-ZiQ.png) * 我们什么时候应该学习`lr_find` ? [[23:02](https://youtu.be/JNxcznsrRb8%3Ft%3D23m2s)] -在开始时运行一次,也许在把层解冻后(我们稍后会学习)。 当我改变我正在训练的东西或改变我训练它的方式时。 运行它永远不会有任何损害。 +在开始时运行一次,在把层解冻后也许也可以运行一次(我们稍后会学习)。当我改变我正在训练的东西或改变我训练它的方式时,可能都会再运行它一次——总之,运行它永远不会有任何损害,也不会花费太长时间。 ## 回到数据增强 [[24:10](https://youtu.be/JNxcznsrRb8%3Ft%3D24m10s)] @@ -100,8 +100,8 @@ learn.fit(1e-2, 1) [ 2. 0.02189 0.0196 0.99316] ``` -* 坏消息是准确率没有提高。 训练损失正在减少,但验证损失不是,但我们并没有过拟合。 当训练损失远低于验证损失时,才是过拟合。 换句话说,当你的模型在训练集上做得比在验证集上做得好得多时,这意味着你的模型泛化性较差。 -* `cycle_len=1` [[30:17](https://youtu.be/JNxcznsrRb8%3Ft%3D30m17s)] :这样可以**通过重启(SGDR)**实现**随机梯度下降** 。 基本的想法是,当你以最小的损失越来越接近现场时,你可能想要开始降低学习率(采取较小的步骤),以便到达正确的位置。 +* 坏消息是准确率没有提高。 训练损失正在减少,但验证损失不是,但我们并没有过拟合。 当训练损失远低于验证损失时,才是过拟合。 现在你的模型在训练集上做得比在验证集上做得好得多,这意味着你的模型泛化性较差。 +* `cycle_len=1` [[30:17](https://youtu.be/JNxcznsrRb8%3Ft%3D30m17s)] :这样可以**通过重启实现随机梯度下降 (SGDR)** 。 基本的想法是,当你越来越接近最小损失点时,你可能想要开始降低学习率(采取较小的步长),以便到达正确的位置。 * 在训练时降低学习率的想法称为**学习率退火** ,这是非常常见的。 最常见和“hacky”的方法是在一段时间内训练具有一定学习速度的模型,当它停止改进时,手动降低学习率(逐步退火)。 * 一个更好的方法就是选择某种功能形式 - 结果是真正好的功能形式是cosign曲线的一半,它在开始时保持一段时间的高学习率,然后当迭代次数增多时迅速下降。 @@ -111,7 +111,7 @@ learn.fit(1e-2, 1) ![](../img/1_TgAz1qaKu_SzuRmsO-6WGQ.png) -* 重置学习率之间的时期数由`cycle_len`设置,并且这种情况发生的次数称为 _循环次数_ ,并且是我们实际传递的第二个参数`fit()` 。 所以这就是我们的实际学习率: +* 重置学习率之间的时期数由`cycle_len`设置,并且这种情况发生的次数称为 _循环次数_ ,并且实际上是我们向`fit()`传递的第二个参数 。 所以这就是我们的实际学习率: ![](../img/1_OKmsY6RR0DirLaLU2cIXtQ.png)