24 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
学习 PyTorch 深度学习
欢迎来到 Zero to Mastery Learn PyTorch for Deep Learning 课程,——互联网上学习 PyTorch 的第二好去处(第一好是 PyTorch 文档).
- 2023 年 4 月更新: 全新的 PyTorch 2.0 教程 已上线!由于 PyTorch 2.0 是增量式(新功能)且向后兼容的发布,所有先前的课程材料在 PyTorch 2.0 下仍然可用。
本页目录
课程材料/大纲
- 📖 在线书籍版本: 所有课程材料均可在 learnpytorch.io. 在线阅读。
- 🎥 YouTube 上前五章: 观看 前 25 小时的内容.,一天学会 PyTorch。
- 🔬 课程重点: 代码、代码、代码,实验、实验、实验。
- 🏃♂️ 教学风格: https://sive.rs/kimo.
- 🤔 提问: 请前往 GitHub Discussions 页面 查看已有问题或提出自己的问题。
| 章节 | 涵盖内容 | 练习与课外拓展 | 幻灯片 |
|---|---|---|---|
| 00 - PyTorch 基础 | 深度学习和神经网络中常用的诸多基础 PyTorch 操作。 | 前往练习与课外拓展 | 前往幻灯片 |
| 01 - PyTorch 工作流 | 提供用 PyTorch 解决深度学习问题并构建神经网络的思路大纲。 | 前往练习与课外拓展 | 前往幻灯片 |
| 02 - PyTorch 神经网络分类 | 运用第 01 章的 PyTorch 工作流,完成一个神经网络分类问题。 | 前往练习与课外拓展 | 前往幻灯片 |
| 03 - PyTorch 计算机视觉 | 看看如何沿用第 01、02 章的工作流,用 PyTorch 解决计算机视觉问题。 | 前往练习与课外拓展 | 前往幻灯片 |
| 04 - PyTorch 自定义数据集 | 如何将自定义数据集加载到 PyTorch 中?本 notebook 还会为模块化代码(第 05 章介绍)打下基础。 | 前往练习与课外拓展 | 前往幻灯片 |
| 05 - PyTorch 模块化 | PyTorch 的设计注重模块化;让我们把已创建的内容整理成一系列 Python 脚本(这也是你在实际项目中常见的 PyTorch 代码组织方式)。 | 前往练习与课外拓展 | 前往幻灯片 |
| 06 - PyTorch 迁移学习 | 选取一个表现优异的预训练模型,并针对我们自己的问题进行调整。 | 前往练习与课外拓展 | 前往幻灯片 |
| 07 - 里程碑项目 1:PyTorch 实验追踪 | 我们已经构建了不少模型……要是能追踪它们各自的进展该多好? | 前往练习与课外拓展 | 前往幻灯片 |
| 08 - 里程碑项目 2:PyTorch 论文复现 | PyTorch 是机器学习研究领域最流行的深度学习框架;让我们通过复现一篇机器学习论文来一探究竟。 | 前往练习与课外拓展 | 前往幻灯片 |
| 09 - 里程碑项目 3:模型部署 | 我们已经有了一个可运行的 PyTorch 模型……如何把它交到他人手中?提示:部署到互联网上。 | 前往练习与课外拓展 | 前往幻灯片 |
| PyTorch 额外资源 | 本课程涵盖大量 PyTorch 与深度学习内容,但机器学习领域十分广阔;此处收录了推荐书籍与资源,涵盖:PyTorch 与深度学习、ML 工程、NLP(自然语言处理)、时间序列数据、数据集获取途径等。 | - | - |
| PyTorch 速查表 | 快速概览 PyTorch 的部分主要特性,并提供课程内及 PyTorch 文档中更多资源的链接。 | - | - |
| PyTorch 2.0 快速教程 | 对 PyTorch 2.0 的超快快快快快入门介绍:有哪些新内容、如何开始,以及进一步学习的资源。 | - | - |
状态
所有材料均已完成,视频已在 Zero to Mastery 发布!
请参阅项目页面上的进行中看板 - https://github.com/users/mrdbourke/projects/1
- 视频总数: 321
- 已完成骨架代码: 00、01、02、03、04、05、06、07、08、09
- 已完成注释(文本): 00、01、02、03、04、05、06、07、08、09
- 已完成配图: 00、01、02、03、04、05、06、07、08、09
- 已完成主题演讲: 00、01、02、03、04、05、06、07、08、09
- 已完成练习与解答: 00、01、02、03、04、05、06、07、08、09
请参阅日志 获取几乎每日更新的内容。
关于本课程
本课程适合谁?
你: 是机器学习或深度学习领域的初学者,希望学习 PyTorch。
本课程: 以动手实践、代码优先的方式,教你 PyTorch 以及许多机器学习(machine learning)概念。
如果你已有 1 年以上机器学习经验,本课程仍可能有帮助,但它专为初学者友好而设计。
先修要求是什么?
- 3–6 个月 Python 编程经验。
- 至少一门机器学习入门课程(不过这一步或许可以跳过,文中为许多不同主题提供了资源链接)。
- 有使用 Jupyter Notebooks 或 Google Colab 的经验(当然你也可以边学边掌握)。
- 愿意学习(最重要)。
对于第 1 和第 2 点,我推荐 Zero to Mastery Data Science and Machine Learning Bootcamp, 它会教你机器学习和 Python 的基础知识(不过我有私心,我也教那门课)。
课程如何讲授?
所有课程材料均可免费在线阅读,见 learnpytorch.io. 如果你喜欢阅读,我建议你通读那里的资源。
如果你更喜欢通过视频学习,本课程也采用学徒式(apprenticeship-style)授课:我写 PyTorch 代码,你也写 PyTorch 代码。
课程座右铭里有两句很有道理:如有疑问,就运行代码(if in doubt, run the code),以及 实验、实验、再实验!(experiment, experiment, experiment!)。
我的全部目标就是帮你做好一件事:通过编写 PyTorch 代码来学习机器学习。
所有代码都通过 Google Colab Notebooks 编写(你也可以使用 Jupyter Notebooks),这是一个用于实验机器学习的绝佳免费资源。
完成课程后我能得到什么?
如果你跟着视频学习,会有证书之类的东西。
但证书也就那样。
你可以把本课程看作一个机器学习动量(momentum)构建器。
到课程结束时,你将编写数百行 PyTorch 代码。
并接触到机器学习中许多最重要的概念。
因此,当你去构建自己的机器学习项目,或查看用 PyTorch 制作的公开机器学习项目时,你会觉得熟悉;即便不熟悉,至少你也知道该去哪里查找。
课程里我会构建什么?
我们从 PyTorch 和机器学习最基础的内容开始,因此即使你刚接触机器学习,也能快速跟上进度。
然后我们会探索更高级的领域,包括 PyTorch 神经网络分类、PyTorch 工作流、计算机视觉(computer vision)、自定义数据集、实验跟踪、模型部署,以及我个人最喜欢的:迁移学习(transfer learning)——一种强大技术,可把某个机器学习模型在另一问题上所学到的知识,应用到你自己的问题上!
在此过程中,你将围绕一个名为 FoodVision 的总项目完成三个里程碑项目:FoodVision 是一个用于对食物图像进行分类的神经网络计算机视觉模型。
这些里程碑项目将帮助你练习使用 PyTorch 覆盖重要的机器学习概念,并打造一份可以向雇主展示的作品集,说“这就是我做过的东西”。
如何开始?
你可以在任何设备上阅读材料,但本课程最好在桌面浏览器中观看并跟着编码。
课程使用名为 Google Colab 的免费工具。如果你完全没有使用经验,建议先学习免费的 Introduction to Google Colab tutorial 然后再回到这里。
开始步骤:
- 点击上方某个 notebook 或章节链接,例如“00. PyTorch Fundamentals”。
- 点击顶部的“Open in Colab”按钮。
- 按几次 SHIFT+Enter,看看会发生什么。
我的问题没有得到解答
请留下一条 discussion 或直接给我发邮件:daniel (at) mrdbourke (dot) com。
日志
几乎每天都会更新进展。
- 15 May 2023 - PyTorch 2.0 教程完成 + 视频已添加到 ZTM/Udemy,见代码:https://www.learnpytorch.io/pytorch_2_intro/
- 13 Apr 2023 - 更新 PyTorch 2.0 notebook
- 30 Mar 2023 - 更新 PyTorch 2.0 notebook,补充更多信息/清理代码
- 23 Mar 2023 - 升级 PyTorch 2.0 教程,添加注释和图片
- 13 Mar 2023 - 为 PyTorch 2.0 教程添加入门代码
- 18 Nov 2022 - 添加 PyTorch 3 个最常见错误的参考 + 更多课程章节链接:https://www.learnpytorch.io/pytorch_most_common_errors/
- 9 Nov 2022 - 添加 PyTorch cheatsheet,快速概览 PyTorch 主要特性 + 课程章节链接:https://www.learnpytorch.io/pytorch_cheatsheet/
- 9 Nov 2022 - 完整课程材料(300+ 个视频)现已在 Udemy 上线!可在此注册:https://www.udemy.com/course/pytorch-for-deep-learning/?couponCode=ZTMGOODIES7(上线优惠码自本条起 3–4 天内有效)
- 4 Nov 2022 - 在
extras/中添加 PyTorch Cheatsheet 的 notebook(简要概览 PyTorch 许多最重要功能) - 2 Oct 2022 - 第 08 和 09 节的所有视频已发布(最后两节 100+ 个视频)!
- 30 Aug 2022 - 为 09 录制 15 个视频,视频总数:321,第 09 节视频完成!!!……甚至比 08 还大!!
- 29 Aug 2022 - 为 09 录制 16 个视频,视频总数:306
- 28 Aug 2022 - 为 09 录制 11 个视频,视频总数:290
- 27 Aug 2022 - 为 09 录制 16 个视频,视频总数:279
- 26 Aug 2022 - 为 notebook 09 做收尾,添加 09 的 slides,创建 09 的 solutions 和 exercises
- 25 Aug 2022 - 为 09 添加注释并清理,移除 TK's,清理图片,制作 09 的 slides
- 24 Aug 2022 - 为 09 添加注释,main takeaways、exercises 和 extra-curriculum 完成
- 23 Aug 2022 - 为 09 添加注释,添加大量图片/slides
- 22 Aug 2022 - 为 09 添加注释,开始制作 slides/图片
- 20 Aug 2022 - 为 09 添加注释
- 19 Aug 2022 - 为 09 添加注释,看看这些很棒的 demos!
- 18 Aug 2022 - 为 09 添加注释
- 17 Aug 2022 - 为 09 添加注释
- 16 Aug 2022 - 为 09 添加注释
- 15 Aug 2022 - 为 09 添加注释
- 13 Aug 2022 - 为 09 添加注释
- 12 Aug 2022 - 将 notebook 09 的 demo 文件添加到
demos/,开始为 notebook 09 添加说明文字注释 - 11 Aug 2022 - 完成 notebook 09 的骨架代码,课程完成部署 2 个模型,一个用于 FoodVision Mini,另一个用于(secret)
- 10 Aug 2022 - 添加 PyTorch Extra Resources 章节(学习更多 PyTorch/深度学习的去处):https://www.learnpytorch.io/pytorch_extra_resources/
- 09 Aug 2022 - 为 notebook 09 添加更多骨架代码
- 08 Aug 2022 - 创建 09 的草稿 notebook,最终目标是部署 FoodVision Mini 模型并使其公开可访问
- 05 Aug 2022 - 为 08 录制 11 个视频,视频总数:263,第 08 节视频完成!……目前为止最大的一节
- 04 Aug 2022 - 为 08 录制 13 个视频,视频总数:252
- 03 Aug 2022 - 为 08 录制 3 个视频,视频总数:239
- 02 Aug 2022 - 为 08 录制 12 个视频,视频总数:236
- 30 July 2022 - 为 08 录制 11 个视频,视频总数:224
- 29 July 2022 - 为 08 添加 exercises + solutions,见 YouTube 上的 live walkthrough:https://youtu.be/tjpW_BY8y3g
- 28 July 2022 - 为 08 添加 slides
- 27 July 2022 - 清理 08 的大部分内容,开始制作 08 的 slides,接下来做 exercises 和 extra-curriculum
- 26 July 2022 - 为 08 添加注释和图片
- 25 July 2022 - 为 08 添加注释
- 24 July 2022 - 在 YouTube 上以单个视频(25+ 小时!!!)发布课程前半部分(notebooks 00–04):https://youtu.be/Z_ikDlimN6A
- 21 July 2022 - 为 08 添加注释和图片
- 20 July 2022 - 为 08 添加注释和图片,越来越近了!这是史诗级的一节
- 19 July 2022 - 为 08 添加注释和图片
- 15 July 2022 - 为 08 添加注释和图片
- 14 July 2022 - 为 08 添加注释
- 12 July 2022 - 为 08 添加注释,woo woo 这是超大大的一节!
- 11 July 2022 - 为 08 添加注释
- 9 July 2022 - 为 08 添加注释
- 8 July 2022 - 为 08 添加大量注释
- 6 July 2022 - 课程在 ZTM Academy 上线,包含第 00–07 节的视频!🚀 - https://dbourke.link/ZTMPyTorch
- 1 July 2022 - 为 08 添加注释和图片
- 30 June 2022 - 为 08 添加注释
- 28 June 2022 - 为第 07 节录制 11 个视频,视频总数 213,第 07 节所有视频完成!
- 27 June 2022 - 为第 07 节录制 11 个视频,视频总数 202
- 25 June 2022 - 为第 06 节重录 7 个视频以包含更新后的 API,视频总数 191
- 24 June 2022 - 为第 06 节重录 12 个视频以包含更新后的 API
- 23 June 2022 - 完成 07 的注释,为 07 添加 exercise template 和 solutions + YouTube 上的 video walkthrough:https://youtu.be/cO_r2FYcAjU
- 21 June 2022 - 使 08 可端到端运行,为 07 添加图片和注释
- 17 June 2022 - 修复 06、07 v2 以适配即将发布的 torchvision 版本升级,为 08 添加大量注释
- 13 June 2022 - 添加 notebook 08 第一版,开始复现 Vision Transformer 论文
- 10 June 2022 - 为 07 v2 添加注释
- 09 June 2022 - 为
torchvisionv0.13 创建 07 v2(当torchvision=0.13发布后将替换 07 v1) - 08 June 2022 - 为
torchvisionv0.13 适配 06 v2(当torchvision=0.13发布后将替换 06 v1) - 07 June 2022 - 为即将发布的
torchvisionv0.13 更新创建 notebook 06 v2(新的 transfer learning 方法) - 04 June 2022 - 为 07 添加注释
- 03 June 2022 - 为 07 添加海量注释
- 31 May 2022 - 为 07 添加大量注释,使代码可端到端运行
- 30 May 2022 - 为 06 录制 4 个视频,完成第 06 节,进入第 07 节,视频总数 186
- 28 May 2022 - 为 06 录制 10 个视频,视频总数 182
- 24 May 2022 - 为 06 添加 solutions 和 exercises
- 23 May 2022 - 完成 06 的注释和图片,该做 exercises 和 solutions 了
- 22 May 2202 - 为 06 添加大量图片
- 18 May 2022 - 为 06 添加大量注释
- 17 May 2022 - 为第 06 节添加大量注释
- 16 May 2022 - 为第 05 节录制 10 个视频,完成第 05 节视频 ✅
- 12 May 2022 - 为 05 添加 exercises 和 solutions
- 11 May 2022 - 清理 05 的 part 1 和 part 2 notebooks,制作 05 的 slides,开始做 05 的 exercises 和 solutions
- 10 May 2022 - 对 05 节进行海量更新,见网站,看起来很漂亮:https://www.learnpytorch.io/05_pytorch_going_modular/
- 09 May 2022 - 为 05 添加大量材料,清理文档
- 08 May 2022 - 为 05 添加大量材料
- 06 May 2022 - 继续制作 05 的材料
- 05 May 2022 - 用标题/大纲更新第 05 节
- 28 Apr 2022 - 为 04 录制 13 个视频,完成第 04 节视频,现在制作 05 的材料
- 27 Apr 2022 - 为 04 录制 3 个视频
- 26 Apr 2022 - 为 04 录制 10 个视频
- 25 Apr 2022 - 为 04 录制 11 个视频
- 24 Apr 2022 - 为 04 准备 slides
- 23 Apr 2022 - 为 03 录制 6 个视频,完成第 03 节视频,现在进入 04
- 22 Apr 2022 - 为 03 录制 5 个视频
- 21 Apr 2022 - 为 03 录制 9 个视频
- 20 Apr 2022 - 为 03 录制 3 个视频
- 19 Apr 2022 - 为 03 录制 11 个视频
- 18 Apr 2022 - 完成 04 的 exercises/solutions,在 YouTube 上添加 04 exercises/solutions 的 live-coding walkthrough:https://youtu.be/vsFMF9wqWx0
- 16 Apr 2022 - 完成 03 的 exercises/solutions,在 YouTube 上添加 03 exercises/solutions 的 live-coding walkthrough:https://youtu.be/_PibmqpEyhA
- 14 Apr 2022 - 为 04 添加最终图片/注释,开始制作 03 和 04 的 exercises/solutions
- 13 Apr 2022 - 为 04 添加更多图片/注释
- 3 Apr 2022 - 为 04 添加更多注释
- 2 Apr 2022 - 为 04 添加更多注释
- 1 Apr 2022 - 为 04 添加更多注释
- 31 Mar 2022 - 为 04 添加更多注释
- 29 Mar 2022 - 为 04 添加更多注释
- 27 Mar 2022 - 开始为 04 添加注释
- 26 Mar 2022 - 为 04 制作 dataset
- 25 Mar 2022 - 为 03 制作 slides
- 24 Mar 2022 - 修复 03 在 docs 中无法运行的问题(终于)
- 23 Mar 2022 - 为 03 添加更多图片
- 22 Mar 2022 - 为 03 添加图片
- 20 Mar 2022 - 为 03 添加更多注释
- 18 Mar 2022 - 为 03 添加更多注释
- 17 Mar 2022 - 为 03 添加更多注释
- 16 Mar 2022 - 为 03 添加更多注释
- 15 Mar 2022 - 为 03 添加更多注释
- 14 Mar 2022 - 开始为 notebook 03 添加注释,见进行中的工作:https://www.learnpytorch.io/03_pytorch_computer_vision/
- 12 Mar 2022 - 为 02 录制 12 个视频,完成第 02 节,现在制作 03、04、05 的材料
- 11 Mar 2022 - 为 02 录制 9 个视频
- 10 Mar 2022 - 为 02 录制 10 个视频
- 9 Mar 2022 - 清理 02 的 slides/code,准备录制
- 8 Mar 2022 - 为第 01 节录制 9 个视频,完成第 01 节,现在进入 02
- 7 Mar 2022 - 为第 01 节录制 4 个视频
- 6 Mar 2022 - 为第 01 节录制 4 个视频
- 4 Mar 2022 - 为第 01 节录制 10 个视频
- 20 Feb 2022 - 为第 00 节录制 8 个视频,完成该节,现在进入 01
- 18 Feb 2022 - 为第 00 节录制 13 个视频
- 17 Feb 2022 - 为第 00 节录制 11 个视频
- 16 Feb 2022 - 添加 setup guide
- 12 Feb 2022 - 整理 README,添加课程材料表格,完成 01 的图片和 slides
- 10 Feb 2022 - 完成 00 的 slides 和图片,notebook 已可发布:https://www.learnpytorch.io/00_pytorch_fundamentals/
- 01-07 Feb 2022 - 为 02 添加注释,已完成,仍需要图片,今天将做 exercises/solutions
- 31 Jan 2022 - 开始为 02 添加注释
- 28 Jan 2022 - 为 01 添加 exercies 和 solutions
- 26 Jan 2022 - 为 01 添加更多注释,明天应该能完成,之后也会做 exercises + solutions
- 24 Jan 2022 - 为 01 添加大量注释
- 21 Jan 2022 - 开始为 01 添加注释
- 20 Jan 2022 - 完成 00 的注释(仍需添加图片),为 00 添加 exercises 和 solutions
- 19 Jan 2022 - 为 00 添加更多注释
- 18 Jan 2022 - 为 00 添加更多注释
- 17 Jan 2022 - 假期回来,为 00 添加更多注释
- 10 Dec 2021 - 开始为 00 添加注释
- 9 Dec 2021 - 为课程创建网站(learnpytorch.io) 随着开发推进,你会在那里看到更新发布
- 8 Dec 2021 - 清理 notebook 07,开始回头检查代码并添加注释
- 26 Nov 2021 - 完成 07 的骨架代码,添加了四个不同实验,需要清理并使其更直观
- 25 Nov 2021 - 清理 06 的代码,为 07 添加骨架代码(experiment tracking)
- 24 Nov 2021 - 更新 04、05、06 notebooks 以便更易消化和学习,每节最多涵盖 3 个大概念,05 现在专门用于将 notebook 代码转为模块化代码
- 22 Nov 2021 - 更新 04 的 train 和 test 函数,使其更直观
- 19 Nov 2021 - 添加 05(transfer learning)notebook,更新 04 中的 custom data loading 代码
- 18 Nov 2021 - 更新 03 的 vision 代码,并在 04 中添加 custom dataset loading 代码
- 12 Nov 2021 - 为 notebook 04 添加大量 custom dataset loading 的骨架代码,下一步是用 custom data 建模
- 10 Nov 2021 - 为 04 研究 custom datasets 的最佳实践
- 9 Nov 2021 - 更新 03 骨架代码以完成 CNN model 构建,接下来进入 04 加载 custom datasets
- 4 Nov 2021 - 为 03 添加 GPU 代码 + train/test loops +
helper_functions.py - 3 Nov 2021 - 为 03 添加基础起步,计划本周末完成
- 29 Oct 2021 - 整理 02 的骨架代码,仍有一些需要清理/整理,创建了 03
- 28 Oct 2021 - 完成 02 的骨架代码,明天将清理/整理,下周做 03
- 27 Oct 2021 - 为 02 添加大量代码,计划明天/本周末完成
- 26 Oct 2021 - 用大纲/代码更新 00、01、02,00 和 01 的骨架代码完成,接下来是 02
- 23, 24 Oct 2021 - 用更多大纲/代码更新 00 和 01 notebooks
- 20 Oct 2021 - 为 01 和 02 添加 v0 大纲,在 README 中添加课程粗略大纲,本课程将聚焦更少但更好的内容
- 19 Oct 2021 - 启动仓库 🔥,添加 fundamentals notebook 草稿 v0