C++-Implementierung von PyTorch-Tutorials für alle
Betriebssystem (Compiler)LibTorch | 2.3.0 |
---|---|
macOS (clang 11, 12, 13) | |
Linux (gcc 9, 10, 11) | |
Windows (msvc 2019, 2022) |
Dieses Repository bietet Tutorial-Code in C++ für Deep-Learning-Forscher zum Erlernen von PyTorch (d. h. Abschnitt 1 bis 3).
Python-Tutorial : https://github.com/yunjey/pytorch-tutorial
Hinweis : Interaktive Tutorials werden derzeit in der Nightly-Version von LibTorch ausgeführt.
Daher gibt es einige Tutorials, die bei der Arbeit mit der Nightly-Version abstürzen können.
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>
Hinweis für Windows-Benutzer:
Libtorch unterstützt nur 64-Bit-Windows und es muss ein x64-Generator angegeben werden. Für Visual Studio kann dies durch Anhängen von-A x64
an den obigen Befehl erfolgen.
Einige nützliche Optionen:
Option | Standard | Beschreibung |
---|---|---|
-D CUDA_V=(11.8|12.1|none) | none | Laden Sie LibTorch für eine CUDA-Version herunter ( none = CPU-Version herunterladen). |
-D LIBTORCH_DOWNLOAD_BUILD_TYPE=(Release|Debug) | Release | Bestimmt, welche libtorch-Build-Typ-Version heruntergeladen werden soll (nur relevant unter Windows ). |
-D DOWNLOAD_DATASETS=(OFF|ON) | ON | Laden Sie erforderliche Datensätze während des Builds herunter (nur wenn sie nicht bereits in pytorch-cpp/data vorhanden sind). |
-D CREATE_SCRIPTMODULES=(OFF|ON) | OFF | Erstellen Sie während des Builds alle erforderlichen Skriptmoduldateien für vorab erlernte Modelle/Gewichte. Erfordert installiertes Python3 mit Pytorch und Torchvision. |
-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch | <empty> | Überspringen Sie das Herunterladen von LibTorch und verwenden Sie stattdessen Ihre eigene lokale Version (siehe Anforderungen). |
-D CMAKE_BUILD_TYPE=(Release|Debug|...) | <empty> | Bestimmt den CMake-Build-Typ für Einzelkonfigurationsgeneratoren (siehe CMake-Dokumente). |
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
Hinweis für Windows-Benutzer (Visual Studio):
Das CMake-Skript lädt die Release- Version von LibTorch herunter, daher muss--config Release
an den Build-Befehl angehängt werden.
So funktionieren das Herunterladen von Datensätzen und die Erstellung von Skriptmodulen:
DOWNLOAD_DATASETS
ON
ist, werden die Datensätze, die für die Tutorials erforderlich sind, die Sie erstellen möchten, nach pytorch-cpp/data
heruntergeladen (sofern sie dort nicht bereits vorhanden sind).CREATE_SCRIPTMODULES
auf ON
ist, werden die Skriptmoduldateien für die vorab erlernten Modelle/Gewichte, die für die Tutorials erforderlich sind, die Sie erstellen möchten, im model
des Quellordners des jeweiligen Tutorials erstellt (sofern sie noch nicht vorhanden sind). Zum Erstellen aller Tutorials verwenden Sie
cmake --build build
Sie können wählen, dass Sie nur Tutorials in einer der Kategorien basics
, intermediate
, advanced
oder popular
erstellen möchten. Wenn Sie beispielsweise nur an den basics
-Tutorials interessiert sind:
cmake --build build --target basics
# In general: cmake --build build --target {category}
Sie können sich auch dafür entscheiden, nur ein einziges Tutorial zu erstellen. Um beispielsweise nur das Sprachmodell-Tutorial zu erstellen:
cmake --build build --target language-model
# In general: cmake --build build --target {tutorial-name}
Notiz :
Das Zielargument ist der Ordnername des Tutorials, wobei alle Unterstriche durch Bindestriche ersetzt werden.
Tipp für Benutzer der CMake-Version >= 3.15 :
Sie können mehrere Ziele durch Leerzeichen getrennt angeben, zum Beispiel:cmake --build build --target language-model image-captioning
build/tutorials
in das Verzeichnis des Tutorials. Angenommen, Sie befinden sich im Verzeichnis pytorch-cpp
und möchten zum Ordner „Pytorch Basics Tutorial“ wechseln: cd build/tutorials/basics/pytorch_basics
# In general: cd build/tutorials/{basics|intermediate|advanced|popular/blitz}/{tutorial_name}
pytorch_basics
-> Name der ausführbaren Datei: pytorch-basics
(oder pytorch-basics.exe
unter Windows)). So führen Sie beispielsweise das Pytorch-Grundlagen-Tutorial aus:./pytorch-basics
# In general: ./{tutorial-name}
. pytorch-basics.exe
# In general: .{tutorial-name}.exe
Finden Sie die neuesten und vorherigen Versionsimages auf Docker Hub.
Sie können die Tutorials (auf der CPU) mithilfe der bereitgestellten Dockerfile
und docker-compose.yml
Dateien in einem Docker-Container erstellen und ausführen:
docker-compose build --build-arg USER_ID= $( id -u ) --build-arg GROUP_ID= $( id -g )
Notiz :
Wenn Sie den Docker-Container ausführen, wird das Host-Repo-Verzeichnis als Volume im Docker-Container bereitgestellt, um Build- und heruntergeladene Abhängigkeitsdateien zwischenzuspeichern, sodass beim Neustart eines Containers nicht alles neu erstellt oder heruntergeladen werden muss. Um über die richtigen Dateiberechtigungen zu verfügen, müssen Sie beim Erstellen des Images unter Linux Ihre Benutzer- und Gruppen-IDs als Build-Argumente angeben.
docker-compose run --rm pytorch-cpp
bash
im interaktiven Modus im Ordner build/tutorials
.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}
Dieses Repository ist unter MIT lizenziert, wie in LIZENZ angegeben.