快发布新的深度学习课程,四个库和600页的书

快是一个自负盈亏的研究,软件开发和教学实验室,致力于使深度学习更容易获得。我们免费提供所有软件,研究论文和课程,而没有广告。我们会自掏腰包支付所有费用,不接受任何赠款或捐赠,因此您可以确定我们是真正独立的。

今天是fast.ai,是我们四年历史上最大的一天。我们发布:

另外,如果您错过了它,本周早些时候我们发布了 实用数据伦理 课程,重点是紧急和实用的主题。

内容

Fastai v2

fastai是一个深度学习库,可为从业人员提供高级组件,这些组件可以快速轻松地在标准深度学习领域中提供最新的结果,并为研究人员提供可以混合和匹配以构建的低级组件新方法。它的目的是在不影响易用性,灵活性或性能的前提下做到这两件事。这要归功于精心分层的体系结构,该体系结构以解耦的抽象表达了许多深度学习和数据处理技术的通用底层模式。通过利用底层Python语言的动态性和PyTorch库的灵活性,可以简洁明了地表达这些抽象。 fastai包括:

fastai的分层架构

fastai围绕两个主要设计目标进行组织:易于上进和快速生产,同时还具有很强的可入侵性和可配置性。它建立在提供可组合构建块的低级API层次结构的顶部。这样,想要重写部分高级API或添加特定行为以适应其需求的用户不必学习如何使用最低级别。

要了解Fastai的功能,请看一下 快速开始,其中显示了如何使用约5行代码来构建图像分类器,图像分割模型,文本情感模型,推荐系统和表格模型。对于每个应用程序,代码都是相同的。

使用Fastai进行图像分割的示例

通读 讲解 了解如何在自己的数据集上训练自己的模型。使用导航侧栏浏览fastai文档。这里记录了每个类,函数和方法。要了解图书馆的设计和动机,请阅读 同行评审论文或观看 这个演讲 总结一些关键设计要点。

所有fast.ai项目(包括fastai)均使用 nbdev,这是完整的 识字的编程环境 建立在Jupyter笔记本上。这意味着每个文档都可以作为交互式Jupyter笔记本进行访问,并且每个文档页面都包含一个链接,可直接在Google Colab上打开该文档以进行实验和自定义。

从普通的PyTorch,Ignite或任何其他基于PyTorch的库中迁移,甚至将fastai与其他库结合使用,都非常容易。通常,您将能够使用所有现有的数据处理代码,但将能够减少培训所需的代码量,并更轻松地利用现代最佳实践。以下是一些受欢迎的库中的迁移指南,可以帮助您: 普通PyTorch; 点燃; 闪电; 催化剂。而且由于很容易将fastai框架与现有的代码和库结合在一起,因此可以选择所需的位。例如,您可以使用fastai的GPU加速的计算机视觉库以及您自己的训练循环。

fastai包括许多添加功能的模块,通常通过回调。得益于灵活的基础架构,这些都可以协同工作,因此您可以选择所需的内容(并添加自己的内容),包括: 混合剪下 增强,独特灵活 GAN培训 框架,包括许多调度程序(在其他任何框架中都没有),包括支持按照 超低价,混合精度,梯度累加,支持Tensorboard等一系列日志记录框架(对Weights和Biases的支持特别强,例如 在这里展示), 医学影像, 以及更多。其他功能是通过 Fastai生态系统,例如对 HuggingFace变形金刚 (也可以手动完成,如 本教程), 音讯, 加速推理等等。

法泰的医学影像

社区已经为fastai v2提供了一些很棒的学习资料,例如Zach Mueller的“从零到英雄”系列: part 1; part 2.

面向程序员的实用深度学习课程

过去的fast.ai课程已经被来自世界各地的各行各业的数十万学生研究。很多学生告诉我们他们如何成为 多个金牌得主国际机器学习比赛, 收到报价 来自顶级公司,以及 研究 文件 已发表。例如,艾萨克·迪米特洛夫斯基(Isaac Dimitrovsky) 告诉我们 他有“一直与ML玩了几年,但并没有真正理解它……[然后]去年下半年参加了fast.ai第1部分课程,这让我大吃一惊”。他继续在享有声望的国际比赛中获得第一名 RA2-DREAM挑战 竞争!他开发了 多阶段深度学习方法 利用Fastai库对风湿性关节炎的影像学手脚关节损伤进行评分。

今年的课程 使事情更进一步。它将机器学习和深度学习都整合到一门课程中,涵盖了诸如随机森林,梯度提升,测试和验证集以及p值等主题,这些主题以前都在单独的机器学习课程中。此外,还涵盖了生产和部署,包括有关为我们自己的深度学习驱动的应用程序开发基于Web的GUI的材料。唯一的先决条件是高中数学,以及一年的编码经验(最好是使用Python)。该课程与 数据研究所 在旧金山大学。

完成本课程后,您将知道:

我们非常关心教学,使用 整个游戏 方法。在本课程中,我们将向您展示如何使用简单,富于表现力的工具,使用完整,有效,非常有用的,最先进的深度学习网络来解决实际问题。然后,我们逐渐深入了解这些工具的制造方式以及制造这些工具的工具的制造方式,等等。我们总是通过示例进行教学。我们确保存在一个可以直观理解的上下文和目的,而不是从代数符号操作开始。我们还将深入细节,向您展示如何从头开始构建深度学习模型的所有组件,包括讨论性能和优化细节。

利用Colab和Gradient平台的指南即可免费完成整个课程,而无需进行任何安装,这些指南提供了免费的,基于GPU的笔记本电脑。

《 Fastai和PyTorch为程序员进行深度学习》,这本书

要了解这本新书的内容以及它的用途,让我们看看其他人对此有何评论。 前言使用Fastai和PyTorch对程序员进行深度学习:

但是与我不同的是,杰里米和西尔文无私地投入了大量精力,以确保其他人不必走痛苦的道路。他们建立了一个很棒的课程,称为fast.ai,它使了解基础编程的人们可以使用最先进的深度学习技术。它已经毕业了成千上万渴望成为优秀实践者的学习者。

在这本书中,这是另一本不懈的产品,杰里米和西尔文通过深度学习构建了神奇的旅程。他们使用简单的单词并介绍每个概念。他们为您带来了最先进的深度学习和最新研究,却使它非常容易获得。

在长达500页的令人愉快的旅程中,您将获得计算机视觉的最新进展,深入学习自然语言处理,并学习一些基础数学。而且,旅程不会一stop而就,因为它们会带您完成将想法付诸生产的过程。您可以将fast.ai社区和成千上万的在线从业人员视为大家庭,无论您遇到什么问题,像您这样的个人都可以在这里讨论和讨论大小解决方案。

Google研究总监Peter Norvig(以及《 定语 关于AI)说:

我们在本书的第1章第1节中看到了“深度学习适用于每个人”,尽管其他书籍可能会提出类似的主张,但本书还是以此为依据。作者在该领域有广泛的知识,但是能够以非常适合于编程但没有机器学习经验的读者的方式描述它。该书首先显示了示例,仅在具体示例的上下文中涵盖了理论。对于大多数人来说,这是最好的学习方式。本书出色地完成了深度学习在计算机视觉,自然语言处理和表格数据处理中的关键应用,并涵盖了诸如数据伦理等关键主题,书本小姐。总之,这是程序员精通深度学习的最佳来源之一。

斯坦福大学医学和影像学人工智能中心主任柯蒂斯·朗洛茨(Curtis Langlotz)说:

Gugger和Howard为曾经做过一点编码的任何人创建了理想的资源。本书以及与之相关的fast.ai课程,通过使用动手操作的方法以及可以探索和重用的预编写代码,来简单,实用地消除深度学习的神秘感。不再为抽象概念的定理和证明而烦恼。在第1章中,您将建立自己的第一个深度学习模型,到本书结尾,您将知道如何阅读和理解任何深度学习论文的“方法”部分。

快速核心,fastscript和fastgpu

快速核心

Python是一种强大的动态语言。与其将所有内容烘焙到语言中,不如让程序员对其进行自定义以使其适用于他们。 快速核心 利用这种灵活性将Python功能添加到受我们喜欢的其他语言启发的功能中,例如来自Julia的多次分发,来自Ruby的mixins以及来自Haskell的currying,binding等。它还增加了一些“缺失的功能”,并清除了Python标准库中的一些粗糙之处,例如简化了并行处理,并将NumPy的思想引入了Python的列表类型。

快速核心包含许多功能。见 docs 有关所有详细信息,包括所提供的模块:

快速脚本

有时,您想为自己或他人创建一个快速脚本。但是在Python中,这涉及很多样板和仪式,尤其是如果您想支持命令行参数,提供帮助和其他好处时。您可以为此使用Python随附的argparse,但是它很复杂且冗长。 快速脚本 makes life easier. In fact, this is a complete, working command-line application (no need for any 的 the usual boilerplate Python requires such as if __name__=='main'):

from 快速脚本 import *
@call_parse
def main(msg:Param("The message", str),
         upper:Param("Convert 至 uppercase?", bool_arg)=False):
    print(msg.upper() if upper else msg)

运行此脚本时,您将看到:

$ python examples/test_fastscript.py
usage: test_fastscript.py [-h] [--upper UPPER] msg
test_fastscript.py: error: the following arguments are required: msg

Fastgpu

Fastgpu provides a single command, Fastgpu_poll, which polls a directory 至 check for scripts 至 run, 和 then runs them on the first available GPU. If no GPUs are available, it waits until one is. If more than one GPU is available, multiple scripts are run in parallel, one per GPU. It is the easiest way we’ve found 至 run ablation studies that take advantage 的 all 的 your GPUs, result in no parallel processing overhead, 和 require no manual intervention.

致谢

非常感谢所有帮助实现这些项目的人,尤其是西尔文·古格(Sylvain Gugger),他在过去两年中与fast.ai紧密合作。也感谢的所有支持 数据研究所 Fast.ai的共同创始人Rachel Thomas(在旧金山大学任教)和(其中包括)讲授数据伦理学课程,并开发了本书中的许多数据伦理学材料。谢谢大家 快速社区 为您所做的所有杰出贡献。