誰でも使える PyTorch チュートリアルの C++ 実装
OS(コンパイラ)LibTorch | 2.3.0 |
---|---|
macOS (clang 11、12、13) | |
Linux (gcc 9、10、11) | |
Windows (msvc 2019、2022) |
このリポジトリは、深層学習研究者が PyTorch を学習するための C++ のチュートリアル コードを提供します(セクション 1 ~ 3)。
Python チュートリアル: https://github.com/yunjey/pytorch-tutorial
注: 対話型チュートリアルは現在、 LibTorch 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 | ビルド中に事前学習モデル/重みに必要なすべての scriptmodule ファイルを作成します。 python3 と pytorch および torchvision がインストールされている必要があります。 |
-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
の場合、構築することを選択したチュートリアルに必要な事前学習モデル/重みの scriptmodule ファイルが、それぞれのチュートリアルのソース フォルダーのmodel
フォルダーに作成されます (まだ存在しない場合)。 すべてのチュートリアルを構築するには、次を使用します
cmake --build build
basics
、 intermediate
、 advanced
、またはpopular
カテゴリの 1 つのチュートリアルのみを作成することを選択できます。たとえば、 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}
注記:
target 引数は、すべてのアンダースコアをハイフンに置き換えたチュートリアルのフォルダー名です。
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 コンテナを実行すると、ビルドおよびダウンロードされた依存関係ファイルをキャッシュするために、ホスト リポジトリ ディレクトリが Docker コンテナ内のボリュームとしてマウントされます。これにより、コンテナの再起動時にすべてを再構築または再ダウンロードする必要がなくなります。正しいファイル権限を得るには、Linux でイメージをビルドするときにユーザー ID とグループ 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 に基づいてライセンスされています。