Implémentation C++ des didacticiels PyTorch pour tout le monde
Système d'exploitation (compilateur)LibTorch | 2.3.0 |
---|---|
macOS (clang 11, 12, 13) | |
Linux (gcc 9, 10, 11) | |
Windows (msvc 2019, 2022) |
Ce référentiel fournit du code tutoriel en C++ permettant aux chercheurs en apprentissage profond d'apprendre PyTorch (c'est-à-dire les sections 1 à 3)
Tutoriel Python : https://github.com/yunjey/pytorch-tutorial
Remarque : les didacticiels interactifs sont actuellement en cours d'exécution sur la version nocturne de LibTorch .
Il existe donc certains tutoriels qui peuvent échouer lorsque vous travaillez avec la version nocturne .
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>
Remarque pour les utilisateurs Windows :
Libtorch ne prend en charge que Windows 64 bits et un générateur x64 doit être spécifié. Pour Visual Studio, cela peut être fait en ajoutant-A x64
à la commande ci-dessus.
Quelques options utiles :
Option | Défaut | Description |
---|---|---|
-D CUDA_V=(11.8|12.1|none) | none | Téléchargez LibTorch pour une version CUDA ( none = télécharger la version CPU). |
-D LIBTORCH_DOWNLOAD_BUILD_TYPE=(Release|Debug) | Release | Détermine la version du type de build libtorch à télécharger (uniquement pertinent sous Windows ). |
-D DOWNLOAD_DATASETS=(OFF|ON) | ON | Téléchargez les ensembles de données requis lors de la construction (uniquement s'ils n'existent pas déjà dans pytorch-cpp/data ). |
-D CREATE_SCRIPTMODULES=(OFF|ON) | OFF | Créez tous les fichiers de module de script requis pour les modèles/poids pré-appris pendant la construction. Nécessite python3 installé avec pytorch et torchvision. |
-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch | <empty> | Ignorez le téléchargement de LibTorch et utilisez plutôt votre propre version locale (voir Exigences). |
-D CMAKE_BUILD_TYPE=(Release|Debug|...) | <empty> | Détermine le type de build CMake pour les générateurs à configuration unique (voir la documentation 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
Remarque pour les utilisateurs de Windows (Visual Studio) :
Le script CMake télécharge la version Release de LibTorch, donc--config Release
doit être ajouté à la commande build.
Comment fonctionnent le téléchargement de jeux de données et la création de modules de script :
DOWNLOAD_DATASETS
est ON
, les ensembles de données requis par les didacticiels que vous choisissez de créer seront téléchargés sur pytorch-cpp/data
(s'ils n'y existent pas déjà).CREATE_SCRIPTMODULES
est ON
, les fichiers scriptmodule pour les modèles/poids pré-appris requis par les didacticiels que vous choisissez de créer seront créés dans le dossier model
du dossier source du didacticiel respectif (s'ils n'existent pas déjà). Pour créer tous les didacticiels, utilisez
cmake --build build
Vous pouvez choisir de créer uniquement des tutoriels dans l'une des catégories basics
, intermediate
, advanced
ou popular
. Par exemple, si vous êtes uniquement intéressé par les tutoriels basics
:
cmake --build build --target basics
# In general: cmake --build build --target {category}
Vous pouvez également choisir de créer uniquement un seul didacticiel. Par exemple, pour créer le didacticiel du modèle de langage uniquement :
cmake --build build --target language-model
# In general: cmake --build build --target {tutorial-name}
Note :
L'argument cible est le nom du dossier du didacticiel, tous les traits de soulignement étant remplacés par des traits d'union.
Astuce pour les utilisateurs de CMake version >= 3.15 :
Vous pouvez spécifier plusieurs cibles séparées par des espaces, par exemple :cmake --build build --target language-model image-captioning
build/tutorials
. Par exemple, en supposant que vous soyez dans le répertoire pytorch-cpp
et que vous souhaitiez accéder au dossier du didacticiel de base de pytorch : cd build/tutorials/basics/pytorch_basics
# In general: cd build/tutorials/{basics|intermediate|advanced|popular/blitz}/{tutorial_name}
pytorch_basics
-> nom de l'exécutable : pytorch-basics
(ou pytorch-basics.exe
sous Windows)). Par exemple, pour exécuter le didacticiel de base de Pytorch :./pytorch-basics
# In general: ./{tutorial-name}
. pytorch-basics.exe
# In general: .{tutorial-name}.exe
Recherchez les images des versions les plus récentes et précédentes sur Docker Hub.
Vous pouvez créer et exécuter les didacticiels (sur le processeur) dans un conteneur Docker à l'aide des fichiers Dockerfile
et docker-compose.yml
fournis :
docker-compose build --build-arg USER_ID= $( id -u ) --build-arg GROUP_ID= $( id -g )
Note :
Lorsque vous exécutez le conteneur Docker, le répertoire du dépôt hôte est monté en tant que volume dans le conteneur Docker afin de mettre en cache les fichiers de dépendance de construction et téléchargés afin qu'il ne soit pas nécessaire de tout reconstruire ou de tout télécharger à nouveau lorsqu'un conteneur est redémarré. Afin d'avoir les autorisations de fichiers correctes, il est nécessaire de fournir vos identifiants d'utilisateur et de groupe comme arguments de construction lors de la création de l'image sous Linux.
docker-compose run --rm pytorch-cpp
bash
en mode interactif dans le dossier 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}
Ce référentiel est sous licence MIT comme indiqué dans LICENSE.