{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/fastai-a-layered-api-for-deep-learning","title":"fastai: A Layered API for Deep Learning","arxiv_id":"2002.04688","date":"2020-02-11","proceeding":null,"authors":["Jeremy Howard","Sylvain Gugger"],"abstract":"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: a new type dispatch system for Python along with a semantic type hierarchy for tensors; a GPU-optimized computer vision library which can be extended in pure Python; an optimizer which refactors out the common functionality of modern optimizers into two basic pieces, allowing optimization algorithms to be implemented in 4-5 lines of code; a novel 2-way callback system that can access any part of the data, model, or optimizer and change it at any point during training; a new data block API; and much more. We have used this library to successfully create a complete deep learning course, which we were able to write more quickly than using previous approaches, and the code was more clear. The library is already in wide use in research, industry, and teaching. NB: This paper covers fastai v2, which is currently in pre-release at http://dev.fast.ai/","url_abs":"https://arxiv.org/abs/2002.04688v2","url_pdf":"https://arxiv.org/pdf/2002.04688v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"fastai-a-layered-api-for-deep-learning","repo_url":"https://github.com/fastai/fastai","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fastai-a-layered-api-for-deep-learning","repo_url":"https://github.com/fastai/nbdev","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"deep-learning","task_name":"Deep Learning"},{"task_slug":null,"task_name":"GPU"}],"methods":[{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[{"slug":"imagenette","name":"Imagenette","full_name":"Imagenette"},{"slug":"imagewoof","name":"Imagewoof","full_name":"Imagewoof"},{"slug":"imagewang","name":"Image网","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2002.04688","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.04688"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fastai/nbdev","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fastai/fastai","reach":null}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"listed":{"samples":7,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"4a56b9b2ee78302e","entry":"create_output","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/config.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4a56b9b2ee78302e"}},{"code_sha256_prefix":"01e5074570469eff","entry":"find_var","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/maker.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/maker.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"01e5074570469eff"}},{"code_sha256_prefix":"4bb32acdcd7e6dde","entry":"get_dls","repo":"fastai/fastai","repo_kind":"official","path":"nbs/examples/train_imagenette.py","file_url":"https://github.com/fastai/fastai/blob/HEAD/nbs/examples/train_imagenette.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4bb32acdcd7e6dde"}},{"code_sha256_prefix":"bff6593e435fc1eb","entry":"is_nbdev","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/config.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bff6593e435fc1eb"}},{"code_sha256_prefix":"210993801372c9f7","entry":"nb_mdoc","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/export.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/export.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"210993801372c9f7"}},{"code_sha256_prefix":"73fd795cb76fa4c3","entry":"patch_name","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/doclinks.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/doclinks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"73fd795cb76fa4c3"}},{"code_sha256_prefix":"4dbdb13fe6334f41","entry":"read_var","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/maker.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/maker.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4dbdb13fe6334f41"}},{"code_sha256_prefix":"7f51a8146638003d","entry":"update_var","repo":"fastai/nbdev","repo_kind":"listed","path":"nbdev/maker.py","file_url":"https://github.com/fastai/nbdev/blob/HEAD/nbdev/maker.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7f51a8146638003d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}