深度学习基础到 Stable Diffusion 第一、二课

作为新课程的特别提前预览,《面向程序员的实用深度学习 第二部分,2022》的4个视频已发布。
课程
作者

Jeremy Howard

发布日期

2022年10月19日

如果您想加入其余课程的直播,昆士兰大学已开放该课程的延迟注册:在此注册

几周前,我们开始教授新课程,从深度学习基础到 Stable Diffusion。开发和教授这些第一课的体验非常棒。课程贡献者包括来自 Hugging Face、Stability.ai 和 fast.ai 的一些杰出人士,我们已经收到了来自 Deoldify、Lambda Labs 等出色人士的一些鼓舞人心的贡献。

在过去的两周里,出现了一些重要的新论文,我们已经在课程中涵盖了它们。由于这个领域发展如此之快,而且引起了广泛关注,我们决定提前发布前两节课。事实上,我们现在就发布!

总共,我们将发布四个视频,时长约5.5小时,涵盖以下主题(课程编号从“9”开始,因为这是《面向程序员的实用深度学习 第一部分》的延续,该部分共有8节课)

如果您已经完成了课程的第一部分,或者已经有一些训练和部署深度学习模型(最好是 PyTorch)的经验,这些视频将最有意义。

第9课——管道和概念

本课从一个关于如何使用Diffusers 库中的管道来生成图像的教程开始。Diffusers 是(我们认为!)目前用于图像生成的最佳库。它具有许多功能,并且非常灵活。我们解释了如何使用它的许多功能,并讨论了访问使用该库所需的 GPU 资源的选项。

我们讨论了在 Diffusers 中使用 Stable Diffusion 时可用的一些巧妙调整,并展示了如何使用它们:引导比例(用于调整提示的使用程度)、负面提示(用于从图像中移除概念)、图像初始化(用于从现有图像开始)、文本反转(用于将您自己的概念添加到生成的图像中)、Dreambooth(文本反转的另一种方法)。

本课的后半部分涵盖了 Stable Diffusion 中的关键概念

  • CLIP 嵌入
  • VAE(变分自编码器)
  • 使用 UNet 预测噪声
  • 使用调度器移除噪声

您可以在此论坛主题中讨论本课,并访问所有笔记本和资源链接。

第9A课——深入探讨

在此视频中,Jonathan Whitaker向我们展示了使用 Stable Diffusion 创建图像时幕后发生的事情,查看了不同的组件和过程,以及如何修改每个组件和过程以进一步控制生成过程。

他展示了如何从头开始复制采样循环,并更详细地解释了每个步骤

  • 自编码器
  • 添加噪声和图像到图像
  • 文本编码过程
  • UNet 和无分类器引导
  • 采样。

第9B课——扩散的数学原理

Wasim Lorgat 和 Tanishq Abraham 从基础开始讲解扩散模型的数学原理。他们假设您除了高中所学知识外,没有其他先修知识。

第10课——自定义管道

本课使用底层组件:VAE、UNet、调度器和分词器,创建一个完整的 Diffusers 管道。通过手动将它们组合在一起,这为您提供了完全自定义推理过程每个方面的灵活性。

我们还讨论了上周发布的三篇重要新论文,它们将推理性能提高了 10 倍以上,并且只需描述新图片应显示的内容,即可“编辑”任何照片。

本课的后半部分开始了课程的“从基础开始”阶段,从头开发一个基本的矩阵类和随机数生成器,并讨论了 Python 中迭代器的使用。

您可以在此论坛主题中讨论本课,并访问所有笔记本和资源链接。