{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,23]],"date-time":"2026-10-23T14:31:50Z","timestamp":1792765910522,"version":"4.5.0"},"reference-count":64,"publisher":"MDPI AG","issue":"2","license":[{"start":{"date-parts":[[2020,2,16]],"date-time":"2020-02-16T00:00:00Z","timestamp":1581811200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information"],"abstract":"<jats:p>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\u20135 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 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.<\/jats:p>","DOI":"10.3390\/info11020108","type":"journal-article","created":{"date-parts":[[2020,2,18]],"date-time":"2020-02-18T10:10:25Z","timestamp":1582020625000},"page":"108","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":851,"title":["Fastai: A Layered API for Deep Learning"],"prefix":"10.3390","volume":"11","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3102-9282","authenticated-orcid":false,"given":"Jeremy","family":"Howard","sequence":"first","affiliation":[{"name":"Fast.ai, San Francisco, CA 94117, USA"},{"name":"Data Science Institute, University of San Francisco, San Francisco, CA 94117-1080, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8056-2713","authenticated-orcid":false,"given":"Sylvain","family":"Gugger","sequence":"additional","affiliation":[{"name":"Fast.ai, San Francisco, CA 94117, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"1968","published-online":{"date-parts":[[2020,2,16]]},"reference":[{"key":"ref_1","unstructured":"Howard, J., and Gugger, S. (2020). Deep Learning for Coders With Fastai and PyTorch: AI Applications Without a PhD, O\u2019Reilly Media, Inc.. [1st ed.]."},{"key":"ref_2","unstructured":"Chollet, F. (2020, February 14). Keras. Available online: https:\/\/keras.io."},{"key":"ref_3","unstructured":"Ioffe, S., and Szegedy, C. (2015). Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. arXiv."},{"key":"ref_4","unstructured":"Howard, J., and Ruder, S. (2018). Fine-tuned Language Models for Text Classification. arXiv."},{"key":"ref_5","unstructured":"Paszke, A., Gross, S., Chintala, S., Chanan, G., Yang, E., DeVito, Z., Lin, Z., Desmaison, A., Antiga, L., and Lerer, A. (2020, February 14). Automatic Differentiation in PyTorch. NIPS Autodiff Workshop. Available online: https:\/\/openreview.net\/forum?id=BJJsrmfCZ."},{"key":"ref_6","unstructured":"Oliphant, T. (2006). NumPy: A Guide to NumPy, Trelgol Publishing."},{"key":"ref_7","unstructured":"Clark, A. (2020, February 14). Python Imaging Library (Pillow Fork). Available online: https:\/\/github.com\/python-pillow\/Pillow."},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"McKinney, W. (2010, January 11\u201317). Data Structures for Statistical Computing in Python. Proceedings of the 9th Python in Science Conference, Austin, TX, USA.","DOI":"10.25080\/Majora-92bf1922-00a"},{"key":"ref_9","first-page":"102","article-title":"DAWNBench: An End-to-End Deep Learning Benchmark and Competition","volume":"100","author":"Coleman","year":"2017","journal-title":"Training"},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Deng, J., Dong, W., Socher, R., Li, L.J., Li, K., and Fei-Fei, L. (2009, January 22\u201324). ImageNet: A Large-Scale Hierarchical Image Database. Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition, Miami, FL, USA.","DOI":"10.1109\/CVPR.2009.5206848"},{"key":"ref_11","doi-asserted-by":"crossref","unstructured":"Parkhi, O.M., Vedaldi, A., Zisserman, A., and Jawahar, C.V. (2012, January 16\u201321). Cats and Dogs. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Providence, RI, USA.","DOI":"10.1109\/CVPR.2012.6248092"},{"key":"ref_12","unstructured":"Smith, L.N. (2018). A disciplined approach to neural network hyper-parameters: Part 1\u2014learning rate, batch size, momentum, and weight decay. arXiv."},{"key":"ref_13","first-page":"44","article-title":"Segmentation and Recognition Using Structure from Motion Point Clouds","volume":"1","author":"Brostow","year":"2008","journal-title":"ECCV"},{"key":"ref_14","unstructured":"Maas, A.L., Daly, R.E., Pham, P.T., Huang, D., Ng, A.Y., and Potts, C. (2011). Learning Word Vectors for Sentiment Analysis. Proceedings of the 49th Annual Meeting of the Association For Computational Linguistics: Human Language Technologies, Association for Computational Linguistics."},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Kudo, T., and Richardson, J. (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. arXiv.","DOI":"10.18653\/v1\/D18-2012"},{"key":"ref_16","unstructured":"Wu, Y., Schuster, M., Chen, Z., Le, Q.V., Norouzi, M., Macherey, W., Krikun, M., Cao, Y., Gao, Q., and Macherey, K. (2016). Google\u2019s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv."},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv.","DOI":"10.18653\/v1\/P18-1007"},{"key":"ref_18","first-page":"9","article-title":"Language Models are Unsupervised Multitask Learners","volume":"1","author":"Radford","year":"2019","journal-title":"OpenAI Blog"},{"key":"ref_19","unstructured":"Devlin, J., Chang, M., Lee, K., and Toutanova, K. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv."},{"key":"ref_20","doi-asserted-by":"crossref","unstructured":"Eisenschlos, J., Ruder, S., Czapla, P., Kadras, M., Gugger, S., and Howard, J. (2019, January 3\u20137). MultiFiT: Efficient Multi-lingual Language Model Fine-tuning. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), Hong Kong, China.","DOI":"10.18653\/v1\/D19-1572"},{"key":"ref_21","unstructured":"Merity, S., Keskar, N.S., and Socher, R. (2017). Regularizing and Optimizing LSTM Language Models. arXiv."},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Wolf, T., Debut, L., Sanh, V., Chaumond, J., Delangue, C., Moi, A., Cistac, P., Rault, T., Louf, R., and Funtowicz, M. (2019). HuggingFace\u2019s Transformers: State-of-the-art Natural Language Processing. arXiv.","DOI":"10.18653\/v1\/2020.emnlp-demos.6"},{"key":"ref_23","unstructured":"De Br\u00e9bisson, A., Simon, \u00c9., Auvolat, A., Vincent, P., and Bengio, Y. (2015). Artificial Neural Networks Applied to Taxi Destination Prediction. arXiv."},{"key":"ref_24","unstructured":"Guo, C., and Berkhahn, F. (2016). Entity Embeddings of Categorical Variables. arXiv."},{"key":"ref_25","first-page":"1257","article-title":"Probabilistic matrix factorization","volume":"2008","author":"Mnih","year":"2008","journal-title":"Adv. Neural Inf. Process. Syst."},{"key":"ref_26","first-page":"19:1","article-title":"The MovieLens Datasets: History and Context","volume":"5","author":"Harper","year":"2015","journal-title":"ACM Trans. Interact. Intell. Syst."},{"key":"ref_27","unstructured":"Smith, L.N. (2015). No More Pesky Learning Rate Guessing Games. arXiv."},{"key":"ref_28","unstructured":"LeCun, Y., Cortes, C., and Burges, C. (2020, February 14). MNIST Handwritten Digit Database. Available online: http:\/\/yann.Lecun.Com\/exdb\/mnist."},{"key":"ref_29","doi-asserted-by":"crossref","unstructured":"Lin, T., Maire, M., Belongie, S.J., Bourdev, L.D., Girshick, R.B., Hays, J., Perona, P., Ramanan, D., Doll\u00e1r, P., and Zitnick, C.L. (2014). Microsoft COCO: Common Objects in Context, Springer.","DOI":"10.1007\/978-3-319-10602-1_48"},{"key":"ref_30","first-page":"2825","article-title":"Scikit-learn: Machine Learning in Python","volume":"12","author":"Pedregosa","year":"2011","journal-title":"J. Mach. Learn. Res."},{"key":"ref_31","unstructured":"Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G.S., Davis, A., Dean, J., and Devin, M. (2015). TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems. arXiv."},{"key":"ref_32","unstructured":"Massa, F., and Chintala, S. (2020, February 14). Torchvision. Available online: https:\/\/github.com\/pytorch\/vision\/tree\/master\/torchvision."},{"key":"ref_33","unstructured":"Girshick, R., Radosavovic, I., Gkioxari, G., Doll\u00e1r, P., and He, K. (2020, February 14). Detectron. Available online: https:\/\/github.com\/facebookresearch\/detectron."},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., Grangier, D., and Auli, M. (2019). Fairseq: A Fast, Extensible Toolkit for Sequence Modeling. arXiv.","DOI":"10.18653\/v1\/N19-4009"},{"key":"ref_35","doi-asserted-by":"crossref","unstructured":"Zhang, H., Ciss\u00e9, M., Dauphin, Y.N., and Lopez-Paz, D. (2017). Mixup: Beyond Empirical Risk Minimization. arXiv.","DOI":"10.1007\/978-1-4899-7687-1_79"},{"key":"ref_36","unstructured":"Micikevicius, P., Narang, S., Alben, J., Diamos, G., Elsen, E., Garcia, D., Ginsburg, B., Houston, M., Kuchaiev, O., and Venkatesh, G. (2020, February 14). Mixed Precision Training, Available online: http:\/\/xxx.lanl.gov\/abs\/1710.03740."},{"key":"ref_37","unstructured":"Ghahramani, Z., Welling, M., Cortes, C., Lawrence, N.D., and Weinberger, K.Q. (2014). Generative Adversarial Nets. Advances in Neural Information Processing Systems 27, Curran Associates, Inc."},{"key":"ref_38","unstructured":"Loshchilov, I., and Hutter, F. (2017). Fixing Weight Decay Regularization in Adam. arXiv."},{"key":"ref_39","unstructured":"You, Y., Li, J., Hseu, J., Song, X., Demmel, J., and Hsieh, C. (2019). Reducing BERT Pre-Training Time from 3 Days to 76 Minutes. arXiv."},{"key":"ref_40","unstructured":"He, K., Zhang, X., Ren, S., and Sun, J. (1997, January 17\u201319). Deep Residual Learning for Image Recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Columbus, OH, USA."},{"key":"ref_41","unstructured":"Huang, G., Liu, Z., and Weinberger, K.Q. (1997, January 17\u201319). Densely Connected Convolutional Networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, San Juan, PR, USA."},{"key":"ref_42","doi-asserted-by":"crossref","unstructured":"Hu, J., Shen, L., and Sun, G. (2018, January 18\u201321). Squeeze-and-Excitation Networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Providence, RI, USA.","DOI":"10.1109\/CVPR.2018.00745"},{"key":"ref_43","doi-asserted-by":"crossref","unstructured":"Xie, S., Girshick, R., Dollar, P., Tu, Z., and He, K. (2017, January 21\u201326). Aggregated Residual Transformations for Deep Neural Networks. Proceedings of the 2017 IEEE Conf. Comput. Vision Pattern Recog. (CVPR), Honolulu, HI, USA.","DOI":"10.1109\/CVPR.2017.634"},{"key":"ref_44","doi-asserted-by":"crossref","unstructured":"Chollet, F. (2017, January 28). Xception: Deep Learning with Depthwise Separable Convolutions. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA.","DOI":"10.1109\/CVPR.2017.195"},{"key":"ref_45","doi-asserted-by":"crossref","unstructured":"Zagoruyko, S., and Komodakis, N. (2016). Wide Residual Networks. arXiv.","DOI":"10.5244\/C.30.87"},{"key":"ref_46","unstructured":"He, T., Zhang, Z., Zhang, H., Zhang, Z., Xie, J., and Li, M. (2020, February 14). Bag of Tricks for Image Classification with Convolutional Neural Networks. CoRR 2018, Available online: http:\/\/xxx.lanl.gov\/abs\/1812.01187."},{"key":"ref_47","unstructured":"Misra, D. (2020, February 14). Mish: A Self Regularized Non-Monotonic Neural Activation Function, Available online: http:\/\/xxx.lanl.gov\/abs\/1908.08681."},{"key":"ref_48","doi-asserted-by":"crossref","unstructured":"Ronneberger, O., Fischer, P., and Brox, T. (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation. International Conference on Medical Image Computing and Computer-Assisted Intervention, Springer.","DOI":"10.1007\/978-3-319-24574-4_28"},{"key":"ref_49","unstructured":"Python Core Team (2019). Python: A Dynamic, Open Source Programming Language, Python Core Team. Python Software Foundation, Python version 3.7."},{"key":"ref_50","unstructured":"Theano Development Team (2016). Theano: A Python framework for fast computation of mathematical expressions. arXiv."},{"key":"ref_51","doi-asserted-by":"crossref","first-page":"90","DOI":"10.1109\/MCSE.2007.55","article-title":"Matplotlib: A 2D graphics environment","volume":"9","author":"Hunter","year":"2007","journal-title":"Comput. Sci. Eng."},{"key":"ref_52","unstructured":"Bradski, G. (2000). The OpenCV Library. Dr. Dobb\u2019s J. Softw. Tools, Available online: https:\/\/www.drdobbs.com\/open-source\/the-opencv-library\/184404319."},{"key":"ref_53","unstructured":"Loizides, F., and Schmidt, B. (2016). Jupyter Notebooks\u2014A publishing format for reproducible computational workflows. Positioning and Power in Academic Publishing: Players, Agents and Agendas, IOS Press."},{"key":"ref_54","unstructured":"Dieleman, S., Schl\u00fcter, J., Raffel, C., Olson, E., S\u00f8nderby, S.K., Nouri, D., Maturana, D., Thoma, M., Battenberg, E., and Kelly, J. (2015). Lasagne: First Release, Zenodo."},{"key":"ref_55","doi-asserted-by":"crossref","unstructured":"Jia, Y., Shelhamer, E., Donahue, J., Karayev, S., Long, J., Girshick, R., Guadarrama, S., and Darrell, T. (2014). Caffe: Convolutional Architecture for Fast Feature Embedding. arXiv.","DOI":"10.1145\/2647868.2654889"},{"key":"ref_56","unstructured":"R Core Team (2017). R: A Language and Environment for Statistical Computing, R Foundation for Statistical Computing."},{"key":"ref_57","unstructured":"Luke Tierney (1989). XLISP-STAT: A Statistical Environment Based on the XLISP Language (Version 2.0), School of Statistics, University of Minnesota. Technical Report 28."},{"key":"ref_58","doi-asserted-by":"crossref","first-page":"1686","DOI":"10.21105\/joss.01686","article-title":"Welcome to the tidyverse","volume":"4","author":"Wickham","year":"2019","journal-title":"J. Open Source Softw."},{"key":"ref_59","doi-asserted-by":"crossref","unstructured":"Raschka, S. (2018). MLxtend: Providing machine learning and data science utilities and extensions to Python\u2019s scientific computing stack. J. Open Source Softw., 3.","DOI":"10.21105\/joss.00638"},{"key":"ref_60","unstructured":"Revay, S., and Teschke, M. (2019). Multiclass Language Identification using Deep Learning on Spectral Images of Audio Signals. arXiv."},{"key":"ref_61","doi-asserted-by":"crossref","unstructured":"Kon\u00e9, I., and Boulmane, L. (2018). Hierarchical ResNeXt Models for Breast Cancer Histology Image Classification. International Conference Image Analysis and Recognition, Springer.","DOI":"10.1007\/978-3-319-93000-8_90"},{"key":"ref_62","doi-asserted-by":"crossref","unstructured":"Elkins, A., Freitas, F.F., and Sanz, V. (2019). Developing an App to interpret Chest X-rays to support the diagnosis of respiratory pathology with Artificial Intelligence. arXiv.","DOI":"10.21037\/jmai.2019.12.01"},{"key":"ref_63","doi-asserted-by":"crossref","unstructured":"Anand, S., Mahata, D., Aggarwal, K., Mehnaz, L., Shahid, S., Zhang, H., Kumar, Y., Shah, R.R., and Uppal, K. (2019). Suggestion Mining from Online Reviews using ULMFiT. arXiv.","DOI":"10.18653\/v1\/S19-2213"},{"key":"ref_64","unstructured":"Jeremy, H., and Sylvain, G. (2019). SwiftAI, Fast.ai, Inc."}],"container-title":["Information"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2078-2489\/11\/2\/108\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T08:58:16Z","timestamp":1760173096000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2078-2489\/11\/2\/108"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,2,16]]},"references-count":64,"journal-issue":{"issue":"2","published-online":{"date-parts":[[2020,2]]}},"alternative-id":["info11020108"],"URL":"https:\/\/doi.org\/10.3390\/info11020108","relation":{},"ISSN":["2078-2489"],"issn-type":[{"value":"2078-2489","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,2,16]]}}}