欢迎使用 fastai



! [ -e /content ] && pip install -Uqq fastai  # 在Colab上升级fastai

fastai 简化了使用现代最佳实践训练快速且准确的神经网络的过程

CI PyPI Conda (channel only)

安装

您可以通过使用 Google Colab 而无需任何安装即可使用 fastai。实际上,该文档的每一页也作为交互式笔记本提供 - 请点击任何页面顶端的“在 Colab 中打开”以打开它(确保将 Colab 运行时更改为“GPU”,以便快速运行!)有关更多信息,请参阅 fast.ai 文档中的 使用 Colab

您可以在自己的计算机上使用 conda 安装 fastai(强烈推荐),只要您使用的是 Linux 或 Windows(注意:不支持 Mac)。有关 Windows 的重要说明,请查看“在 Windows 上运行”。

我们推荐使用 miniconda(或者 miniforge)。首先按照 这里 显示的 conda 命令安装 PyTorch,然后运行:

conda install -c fastai fastai

要使用 pip 安装,请使用:pip install fastai

如果您计划自己开发 fastai,或者想要走在前沿,您可以使用可编辑安装(如果这样做,您还应该使用可编辑安装的 fastcore 来配合使用)。首先安装 PyTorch,然后:

git clone https://github.com/fastai/fastai
pip install -e "fastai[dev]"

快速学习fastai

开始使用fastai(以及深度学习)的最佳方法是阅读这本书,并完成免费的课程

想了解fastai的可能性,可以查看快速入门,这里展示了如何用大约5行代码构建一个图像分类器、一个图像分割模型、一个文本情感模型、一个推荐系统和一个表格模型。对于每个应用,代码基本相同。

通过阅读教程,学习如何在自己的数据集上训练自己的模型。使用导航侧边栏查看fastai文档。这里记录了每个类、函数和方法。

要了解库的设计和动机,请阅读同行评审的论文

关于fastai

fastai 是一个深度学习库,为实践者提供了高层组件,使其能够快速而轻松地在标准深度学习领域取得最先进的结果,同时为研究人员提供了低层组件,以便可以混合搭配构建新的方法。它旨在在易用性、灵活性和性能方面没有重大妥协的情况下实现这两项目标。这得益于精心设计的分层架构,该架构通过解耦的抽象表达了许多深度学习和数据处理技术的共同基本模式。这些抽象可以通过利用底层 Python 语言的动态性和 PyTorch 库的灵活性来简洁明了地表达。fastai 包含:

  • 一种新的用于 Python 的类型调度系统,以及一个用于张量的语义类型层次结构
  • 一个经过 GPU 优化的计算机视觉库,可以用纯 Python 扩展
  • 一个优化器,该优化器将现代优化器的共同功能重构为两个基本部分,从而使优化算法能够在 4-5 行代码中实现
  • 一种新颖的双向回调系统,可以在训练期间的任何时候访问数据、模型或优化器的任何部分并进行更改
  • 一种新的数据块 API
  • 还有更多…

fastai 的设计围绕两个主要目标组织:既要易于接近和快速生产,又要深度可黑客化和可配置。它构建在一个低层 API 的层次结构之上,提供可组合的构建块。这样,用户在想要重写高层 API 的部分或添加特定行为以满足其需求时,不必学习如何使用最低层的内容。

Layered API

从其他库迁移

从普通的 PyTorch、Ignite 或任何其他基于 PyTorch 的库迁移,甚至与其他库结合使用 fastai,都非常简单。一般来说,您可以使用所有现有的数据处理代码,但可以减少训练所需的代码量,更容易利用现代最佳实践。以下是一些流行库的迁移指南,以帮助您前进:

Windows 支持

由于在Jupyter和Windows上的Python多进程问题,Dataloadernum_workers会自动重置为0,以避免Jupyter假死。这使得在Windows上的Jupyter中进行计算机视觉等任务的速度比在Linux上慢了许多。如果您从脚本中使用fastai,则不存在此限制。

请参见这个例子以充分利用Windows上的fastai API。

我们建议使用Windows子系统Linux(WSL)来代替 – 如果您这样做,可以使用常规的Linux安装方法,并且不会遇到num_workers的问题。

测试

要并行运行测试,请启动:

nbdev_test

为了确保所有测试通过,您需要安装在 settings.ini 中指定的 dev_requirements 的依赖项。

pip install -e .[dev]

测试是使用 nbdev 编写的,例如请参见 test_eq 的文档。

贡献

在您克隆此代码库后,请确保在终端中运行 nbdev_install_hooks。这将安装 Jupyter 和 git hooks,以自动清理、信任并修复笔记本中的合并冲突。

在对代码库进行更改后,您应运行 nbdev_prepare 并进行其他必要的更改,以便通过所有测试。

Docker 容器

对于对该项目的官方docker容器感兴趣的用户,可以在这里找到它们。