fastai에 오신 것을 환영합니다
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
CI
PyPI
Conda (channel
only)
설치하기
Google Colab을 사용하면 fastai를 별도의 설치 없이 사용할 수 있습니다. 실제로 이 문서의 모든 페이지는 인터랙티브 노트북으로도 제공되므로, 어떤 페이지에서든 상단의 “Colab에서 열기(Open in colab)”를 클릭하여 열 수 있습니다 (빠르게 실행하려면 Colab 런타임을 “GPU”로 변경해야 합니다!) 더 자세한 정보는 Using Colab의 fast.ai 문서를 참조하십시오.
자신의 컴퓨터에 fastai를 설치하려면 다음 명령어를 사용하세요: pip install fastai.
컴퓨터에서 가장 최신 버전의 PyTorch를 사용할 수 있도록 하려면, 먼저 설치하는 것을 권장합니다.
만약 fastai 자체를 개발하거나 최첨단 기술을 사용하고 싶다면, 편집 가능한 설치(editable install)를 사용할 수 있습니다 (이렇게 할 경우, fastcore의 편집 가능한 설치도 함께 사용하는 것이 좋습니다.) 먼저 PyTorch를 설치한 다음 다음 명령어를 실행하세요:
git clone https://github.com/fastai/fastai
pip install -e "fastai[dev]"
fastai 학습하기
fastai(및 딥러닝)를 시작하는 가장 좋은 방법은 이 책을 읽고 무료 강좌를 완료하는 것입니다.
fastai로 무엇이 가능한지 보려면, Quick Start를 확인해 보세요. 여기에는 약 5줄의 코드를 사용하여 이미지 분류기(image classifier), 이미지 분할 모델(image segmentation model), 텍스트 감성 모델(text sentiment model), 추천 시스템(recommendation system), 그리고 테이블형 모델(tabular model)을 구축하는 방법이 나와 있습니다. 각 응용 프로그램마다 코드는 거의 동일합니다.
자체 데이터셋으로 자신만의 모델을 학습하는 방법을 배우려면 튜토리얼을 읽어보세요. 탐색 사이드바를 사용하여 fastai 문서를 살펴보세요. 모든 클래스, 함수 및 메서드는 여기에 문서화되어 있습니다.
라이브러리의 설계와 동기에 대해 알아보려면 동료 심사 논문을 읽어보세요.
fastai 소개
fastai는 실무자들에게 최첨단(state-of-the-art) 결과를 빠르고 쉽게 제공할 수 있는 고수준 컴포넌트를 제공하고, 연구원들에게는 새로운 접근 방식을 구축하기 위해 혼합 및 매칭할 수 있는 저수준 컴포넌트를 제공하는 딥러닝 라이브러리입니다. 이는 사용 편의성(ease of use), 유연성(flexibility), 성능 면에서 큰 타협 없이 두 가지 목표를 달성하는 것을 목표로 합니다. 이러한 것은 깊이 분리된 추상화(decoupled abstractions)라는 측면에서 많은 딥러닝 및 데이터 처리 기술의 공통적인 근본 패턴을 표현하는 신중하게 계층화된 아키텍처 덕분에 가능합니다. 이 추상화는 기반 Python 언어의 동적 특성과 PyTorch 라이브러리의 유연성을 활용하여 간결하고 명확하게 표현될 수 있습니다.
fastai가 포함하는 내용은 다음과 같습니다:
- 텐서에 대한 의미론적 타입 계층 구조와 함께 Python을 위한 새로운 타입 디스패치 시스템
- 순수 Python으로 확장 가능한 GPU 최적화 컴퓨터 비전 라이브러리
- 현대 옵티마이저의 공통 기능을 두 가지 기본 조각으로 리팩토링하여, 최적화 알고리즘을 4~5줄의 코드로 구현할 수 있게 하는 옵티마이저
- 데이터, 모델 또는 옵티마이저의 모든 부분에 접근하여 학습 중 어느 시점에서든 변경할 수 있는 새로운 2방향 콜백 시스템(2-way callback system)
- 새로운 데이터 블록 API(data block API)
- 그리고 훨씬 더 많은 것들…
fastai는 접근성이 뛰어나고 생산성을 높이는 것을 주된 목표로 설계되었으며, 동시에 깊이 있게 커스터마이징하고 설정할 수 있는 것도 강점입니다. fastai는 컴포저블(composable) 빌딩 블록을 제공하는 하위 레벨 API 계층 구조 위에 구축되었습니다. 따라서 사용자가 고수준 API의 일부를 재작성하거나 필요에 맞는 특정 동작을 추가하려는 경우, 가장 낮은 레벨부터 사용하는 방법을 배울 필요가 없습니다.
<img alt="Layered API" src="https://raw.githubusercontent.com/fastai/fastai/HEAD/images/layered.png" width="345">
다른 라이브러리에서 마이그레이션하기
순수 PyTorch, Ignite 또는 기타 모든 PyTorch 기반 라이브러리, 심지어 fastai를 다른 라이브러리와 함께 사용하는 경우에도 마이그레이션이 매우 쉽습니다. 일반적으로 기존의 데이터 처리 코드는 모두 사용할 수 있지만, 학습에 필요한 코드 양을 줄이고 최신 모범 사례(best practices)를 더 쉽게 활용할 수 있습니다. 다음은 인기 있는 몇몇 라이브러리에서 도움을 받을 수 있는 마이그레이션 가이드입니다:
Windows 지원
Jupyter와 Windows에서 파이썬 멀티프로세싱(python multiprocessing) 문제로 인해, Dataloader의 num_workers가 Jupyter가 멈추는 것을 방지하기 위해 자동으로 0으로 재설정됩니다. 이 때문에 Windows 환경의 Jupyter에서 컴퓨터 비전과 같은 작업은 Linux에 비해 훨씬 느려집니다. 이러한 제한 사항은 스크립트에서 fastai를 사용하는 경우에는 존재하지 않습니다.
이 예제를 참조하여 Windows에서 fastai API를 최대한 활용할 수 있습니다.
대신 Windows Subsystem for Linux (WSL) 사용을 권장합니다. WSL을 사용하면 일반적인 Linux 설치 접근 방식을 사용할 수 있으며, num_workers와 관련된 문제가 발생하지 않습니다.
테스트
테스트를 병렬로 실행하려면 다음 명령어를 실행하세요:
nbdev_test
모든 테스트를 통과하려면 settings.ini의 dev_requirements에 명시된 종속성(dependencies)을 설치해야 합니다.
pip install -e .[dev]
테스트는 nbdev를 사용하여 작성되었습니다. 예를 들어, test_eq 문서를 참조하세요.
기여 (Contributing)
이 저장소(repository)를 클론한 후에는 터미널에서 반드시 nbdev_install_hooks를 실행해야 합니다. 이 명령어는 노트북 파일 내의 병합 충돌(merge conflicts)을 자동으로 정리하고, 신뢰하며, 수정하는 Jupyter 및 git 훅(hooks)을 설치합니다.
저장소에서 변경 사항을 만든 후에는 모든 테스트를 통과시키기 위해 nbdev_prepare를 실행하고 추가적이고 필요한 변경 사항을 적용해야 합니다.
Docker 컨테이너 (Docker Containers)
이 프로젝트의 공식 docker 컨테이너에 관심 있는 분들은 다음 링크에서 확인할 수 있습니다.
here.