모두를 위한 PyTorch 튜토리얼의 C++ 구현
OS(컴파일러)LibTorch | 2.3.0 |
---|---|
macOS(클랭 11, 12, 13) | |
리눅스(gcc 9, 10, 11) | |
윈도우(msvc 2019, 2022) |
이 저장소는 딥 러닝 연구자들이 PyTorch를 배울 수 있도록 C++ 튜토리얼 코드를 제공합니다 (예: 섹션 1~3)
파이썬 튜토리얼 : https://github.com/yunjey/pytorch-tutorial
참고 : 대화형 튜토리얼은 현재 LibTorch Nightly 버전 에서 실행되고 있습니다.
따라서 Nightly 버전 으로 작업할 때 중단될 수 있는 몇 가지 튜토리얼이 있습니다.
conda create --name pytorch-cpp
conda activate pytorch-cpp
conda install xeus-cling notebook -c conda-forge
git clone https://github.com/prabhuomkar/pytorch-cpp.git
cd pytorch-cpp
cmake -B build # <options>
Windows 사용자를 위한 참고 사항:
Libtorch는 64비트 Windows만 지원하며 x64 생성기를 지정해야 합니다. Visual Studio의 경우 위 명령에-A x64
추가하면 됩니다.
몇 가지 유용한 옵션:
옵션 | 기본 | 설명 |
---|---|---|
-D CUDA_V=(11.8|12.1|none) | none | CUDA 버전용 LibTorch를 다운로드합니다( none = CPU 버전 다운로드). |
-D LIBTORCH_DOWNLOAD_BUILD_TYPE=(Release|Debug) | Release | 다운로드할 libtorch 빌드 유형 버전을 결정합니다( Windows 에만 해당). |
-D DOWNLOAD_DATASETS=(OFF|ON) | ON | 빌드 중에 필요한 데이터세트를 다운로드합니다( pytorch-cpp/data 에 아직 없는 경우에만). |
-D CREATE_SCRIPTMODULES=(OFF|ON) | OFF | 빌드 중에 사전 학습된 모델/가중치에 필요한 모든 스크립트 모듈 파일을 생성합니다. pytorch 및 torchvision과 함께 python3이 설치되어 있어야 합니다. |
-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch | <empty> | LibTorch 다운로드를 건너뛰고 대신 자체 로컬 버전(요구 사항 참조)을 사용하세요. |
-D CMAKE_BUILD_TYPE=(Release|Debug|...) | <empty> | 단일 구성 생성기에 대한 CMake 빌드 유형을 결정합니다(CMake 문서 참조). |
cmake -B build
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_PREFIX_PATH=/path/to/libtorch/share/cmake/Torch
-D CREATE_SCRIPTMODULES=ON
cmake -B build
-A x64
-D CUDA_V=11.8
Windows(Visual Studio) 사용자를 위한 참고 사항:
CMake 스크립트는 LibTorch의 릴리스 버전을 다운로드하므로--config Release
빌드 명령에 추가해야 합니다.
데이터 세트 다운로드 및 스크립트 모듈 생성 작동 방식:
DOWNLOAD_DATASETS
가 ON
이면 빌드하기로 선택한 튜토리얼에 필요한 데이터 세트가 pytorch-cpp/data
에 다운로드됩니다(아직 존재하지 않는 경우).CREATE_SCRIPTMODULES
가 ON
이면 빌드하기로 선택한 튜토리얼에 필요한 미리 학습된 모델/가중치에 대한 스크립트 모듈 파일이 해당 튜토리얼 소스 폴더의 model
폴더에 생성됩니다(아직 존재하지 않는 경우). 모든 튜토리얼을 빌드하려면 다음을 사용하세요.
cmake --build build
basics
, intermediate
, advanced
또는 popular
카테고리 중 하나에서만 튜토리얼을 구축하도록 선택할 수 있습니다. 예를 들어 basics
튜토리얼에만 관심이 있는 경우:
cmake --build build --target basics
# In general: cmake --build build --target {category}
또한 단일 튜토리얼만 빌드하도록 선택할 수도 있습니다. 예를 들어 언어 모델 튜토리얼만 빌드하려면 다음을 수행하십시오.
cmake --build build --target language-model
# In general: cmake --build build --target {tutorial-name}
메모 :
대상 인수는 모든 밑줄이 하이픈으로 대체된 튜토리얼의 폴더 이름입니다.
CMake 버전 3.15 이상 사용자를 위한 팁 :
공백으로 구분된 여러 대상을 지정할 수 있습니다. 예를 들면 다음과 같습니다.cmake --build build --target language-model image-captioning
build/tutorials
내의 튜토리얼 디렉토리로 변경하세요. 예를 들어, pytorch-cpp
디렉터리에 있고 pytorch 기본 튜토리얼 폴더로 변경하려고 한다고 가정합니다. cd build/tutorials/basics/pytorch_basics
# In general: cd build/tutorials/{basics|intermediate|advanced|popular/blitz}/{tutorial_name}
pytorch_basics
-> 실행 파일 이름: pytorch-basics
(또는 Windows의 경우 pytorch-basics.exe
)). 예를 들어, pytorch 기본 튜토리얼을 실행하려면:./pytorch-basics
# In general: ./{tutorial-name}
. pytorch-basics.exe
# In general: .{tutorial-name}.exe
Docker Hub에서 최신 및 이전 버전 이미지를 찾아보세요.
제공된 Dockerfile
및 docker-compose.yml
파일을 사용하여 Docker 컨테이너에서 튜토리얼(CPU에서)을 빌드하고 실행할 수 있습니다.
docker-compose build --build-arg USER_ID= $( id -u ) --build-arg GROUP_ID= $( id -g )
메모 :
Docker 컨테이너를 실행하면 호스트 repo 디렉터리가 Docker 컨테이너에 볼륨으로 마운트되어 빌드 및 다운로드한 종속성 파일을 캐시하므로 컨테이너가 다시 시작될 때 모든 것을 다시 빌드하거나 다시 다운로드할 필요가 없습니다. 올바른 파일 권한을 가지려면 Linux에서 이미지를 빌드할 때 사용자 및 그룹 ID를 빌드 인수로 제공해야 합니다.
docker-compose run --rm pytorch-cpp
build/tutorials
폴더에서 대화형 모드로 bash
시작합니다.basics
, intermediate
, advanced
, popular
)의 튜토리얼만 빌드하도록 선택할 수 있습니다. docker-compose run --rm pytorch-cpp {category}
docker-compose run --rm pytorch-cpp pytorch-basics
# In general: docker-compose run --rm pytorch-cpp {tutorial-name}
이 저장소는 LICENSE에 명시된 대로 MIT에 따라 라이센스가 부여됩니다.