fastai README

The project's README from github.com/fastai/fastai. As one markdown file: README.md.

Welcome to fastai

CI PyPI Conda (channel
only)

Installing

You can use fastai without any installation by using Google Colab. In fact, every page of this documentation is also available as an interactive notebook - click “Open in colab” at the top of any page to open it (be sure to change the Colab runtime to “GPU” to have it run fast!) See the fast.ai documentation on Using Colab for more information.

You can install fastai on your own machines with: pip install fastai.

To ensure that you have the best available version of PyTorch on your machine, recommend installing that first.

If you plan to develop fastai yourself, or want to be on the cutting edge, you can use an editable install (if you do this, you should also use an editable install of fastcore to go with it.) First install PyTorch, and then:

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

Learning fastai

The best way to get started with fastai (and deep learning) is to read the book, and complete the free course.

To see what’s possible with fastai, take a look at the Quick Start, which shows how to use around 5 lines of code to build an image classifier, an image segmentation model, a text sentiment model, a recommendation system, and a tabular model. For each of the applications, the code is much the same.

Read through the Tutorials to learn how to train your own models on your own datasets. Use the navigation sidebar to look through the fastai documentation. Every class, function, and method is documented here.

To learn about the design and motivation of the library, read the peer reviewed paper.

About fastai

fastai is a deep learning library which provides practitioners with high-level components that can quickly and easily provide state-of-the-art results in standard deep learning domains, and provides researchers with low-level components that can be mixed and matched to build new approaches. It aims to do both things without substantial compromises in ease of use, flexibility, or performance. This is possible thanks to a carefully layered architecture, which expresses common underlying patterns of many deep learning and data processing techniques in terms of decoupled abstractions. These abstractions can be expressed concisely and clearly by leveraging the dynamism of the underlying Python language and the flexibility of the PyTorch library. fastai includes:

fastai is organized around two main design goals: to be approachable and rapidly productive, while also being deeply hackable and configurable. It is built on top of a hierarchy of lower-level APIs which provide composable building blocks. This way, a user wanting to rewrite part of the high-level API or add particular behavior to suit their needs does not have to learn how to use the lowest level.

Layered API

Migrating from other libraries

It’s very easy to migrate from plain PyTorch, Ignite, or any other PyTorch-based library, or even to use fastai in conjunction with other libraries. Generally, you’ll be able to use all your existing data processing code, but will be able to reduce the amount of code you require for training, and more easily take advantage of modern best practices. Here are migration guides from some popular libraries to help you on your way:

Windows Support

Due to python multiprocessing issues on Jupyter and Windows, num_workers of Dataloader is reset to 0 automatically to avoid Jupyter hanging. This makes tasks such as computer vision in Jupyter on Windows many times slower than on Linux. This limitation doesn’t exist if you use fastai from a script.

See this example to fully leverage the fastai API on Windows.

We recommend using Windows Subsystem for Linux (WSL) instead – if you do that, you can use the regular Linux installation approach, and you won’t have any issues with num_workers.

Tests

To run the tests in parallel, launch:

nbdev_test

For all the tests to pass, you’ll need to install the dependencies specified as part of dev_requirements in settings.ini

pip install -e .[dev]

Tests are written using nbdev, for example see the documentation for test_eq.

Contributing

After you clone this repository, make sure you have run nbdev_install_hooks in your terminal. This install Jupyter and git hooks to automatically clean, trust, and fix merge conflicts in notebooks.

After making changes in the repo, you should run nbdev_prepare and make additional and necessary changes in order to pass all the tests.

Docker Containers

For those interested in official docker containers for this project, they can be found here.

fastai (fastai/fastai)

Searching Database…

28.2K ·GitHub
这是什么?这是一个深度学习库:它提供高层组件,让你在常规领域快速达到业界最先进的效果;同时也有底层组件,研究人员可以自由组合搭配,构建新的方法。
它是用来替代 PyTorch 的,还是建立在 PyTorch 之上的?它建立在 PyTorch 之上——是一个 Python 库,并不是 PyTorch 的替代品。迁移指南涵盖纯 PyTorch、Ignite、Lightning 和 Catalyst,你可以在保留现有数据处理代码的同时,省掉大量训练相关的样板代码。
我怎么把它跑起来?可以零安装:通过 'Open in colab' 按钮在 Google Colab 中打开任意文档页面。如果要在自己的电脑上用,先安装 PyTorch,再运行 pip install fastai 就行。
我需要先自己装好 PyTorch 吗?是的——README 建议先安装 PyTorch,这样能装到最适合你机器的版本;之后 fastai 本身只需一条 pip 命令就能装好。
在 Windows 上训练速度会和其他系统一样快吗?在 Windows 的 Jupyter 里,DataLoader 的 num_workers 会被重置为 0 以避免卡死,这会让计算机视觉训练比 Linux 上慢好几倍。脚本方式不受影响,README 建议用 WSL 来解决这个问题。
我对深度学习完全是新手——fastai 适合入门吗,还是主要面向研究人员?两者都是它明确的设计目标:对从业者来说平易近人、能快速出成果;对研究人员来说又足够底层、方便魔改。它的 API 分了好几层,你只需要学会自己实际用到的那一层。
用它到底能做出什么东西?要写多少代码?Quick Start 里展示了大约 5 行代码就能分别实现图像分类器、图像分割模型、文本情感分析模型、推荐系统和表格数据模型——而且这五者的代码写法几乎一模一样。
它底层有什么特别之处,和直接写 PyTorch 代码有什么不同?它有一个针对 Python 的类型分发系统,为张量建立了语义类型层级;有一套双向回调系统,训练过程中可以访问并修改数据、模型或优化器的任何部分;还有全新的 data block API,以及重构后的优化器——实现新算法只需 4-5 行代码。
学它的最佳方式是什么?读这本书并把免费课程学完——这是 README 推荐的入门方式。然后跟着教程在自己 的数据集上训练模型;每个类、函数和方法都有文档,还有一篇经同行评审的论文讲解了它的设计。
有官方的 Docker 镜像吗?有——README 里链接了该项目的官方 Docker 容器,你不用自己搭建环境就能直接运行 fastai。
Creator
fastai
Size
868.9 MB
Stars
28.2K
Age
9y
Commits · 90 Days