Implementación en C++ de tutoriales de PyTorch para todos
SO (compilador)LibTorch | 2.3.0 |
---|---|
macOS (sonido metálico 11, 12, 13) | |
Linux (ccg 9, 10, 11) | |
Ventanas (msvc 2019, 2022) |
Este repositorio proporciona código tutorial en C++ para que los investigadores de aprendizaje profundo aprendan PyTorch (es decir, secciones 1 a 3).
Tutorial de Python : https://github.com/yunjey/pytorch-tutorial
Nota : Los tutoriales interactivos se están ejecutando actualmente en LibTorch Nightly Version .
Por lo tanto, hay algunos tutoriales que pueden fallar cuando se trabaja con la versión nocturna .
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>
Nota para usuarios de Windows:
Libtorch solo admite Windows de 64 bits y es necesario especificar un generador x64. Para Visual Studio, esto se puede hacer agregando-A x64
al comando anterior.
Algunas opciones útiles:
Opción | Por defecto | Descripción |
---|---|---|
-D CUDA_V=(11.8|12.1|none) | none | Descargue LibTorch para obtener una versión CUDA ( none = descargar la versión de CPU). |
-D LIBTORCH_DOWNLOAD_BUILD_TYPE=(Release|Debug) | Release | Determina qué versión del tipo de compilación de libtorch descargar (solo es relevante en Windows ). |
-D DOWNLOAD_DATASETS=(OFF|ON) | ON | Descargue los conjuntos de datos necesarios durante la compilación (solo si aún no existen en pytorch-cpp/data ). |
-D CREATE_SCRIPTMODULES=(OFF|ON) | OFF | Cree todos los archivos de módulo de script necesarios para los modelos/pesos previamente aprendidos durante la compilación. Requiere python3 instalado con pytorch y torchvision. |
-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch | <empty> | Omita la descarga de LibTorch y utilice su propia versión local (consulte Requisitos). |
-D CMAKE_BUILD_TYPE=(Release|Debug|...) | <empty> | Determina el tipo de compilación de CMake para generadores de configuración única (consulte los documentos de 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
Nota para usuarios de Windows (Visual Studio):
El script CMake descarga la versión de lanzamiento de LibTorch, por lo que se debe agregar--config Release
al comando de compilación.
Cómo funcionan la descarga de conjuntos de datos y la creación de módulos de script:
DOWNLOAD_DATASETS
está ON
, los conjuntos de datos requeridos por los tutoriales que elija crear se descargarán en pytorch-cpp/data
(si aún no existen allí).CREATE_SCRIPTMODULES
está ON
, los archivos scriptmodule para los modelos/pesos previamente aprendidos requeridos por los tutoriales que elija crear se crearán en la carpeta model
de la carpeta fuente del tutorial respectivo (si aún no existen). Para crear todos los tutoriales utilice
cmake --build build
Puede elegir crear tutoriales únicamente en una de las categorías basics
, intermediate
, advanced
o popular
. Por ejemplo, si solo estás interesado en los tutoriales basics
:
cmake --build build --target basics
# In general: cmake --build build --target {category}
También puede optar por crear solo un tutorial. Por ejemplo, para crear únicamente el tutorial del modelo de lenguaje:
cmake --build build --target language-model
# In general: cmake --build build --target {tutorial-name}
Nota :
El argumento de destino es el nombre de la carpeta del tutorial con todos los guiones bajos reemplazados por guiones.
Consejo para usuarios de la versión CMake >= 3.15 :
Puede especificar varios objetivos separados por espacios, por ejemplo:cmake --build build --target language-model image-captioning
build/tutorials
. Por ejemplo, suponiendo que está en el directorio pytorch-cpp
y desea cambiar a la carpeta del tutorial básico de pytorch: cd build/tutorials/basics/pytorch_basics
# In general: cd build/tutorials/{basics|intermediate|advanced|popular/blitz}/{tutorial_name}
pytorch_basics
-> nombre del ejecutable: pytorch-basics
(o pytorch-basics.exe
en Windows)). Por ejemplo, para ejecutar el tutorial básico de pytorch:./pytorch-basics
# In general: ./{tutorial-name}
. pytorch-basics.exe
# In general: .{tutorial-name}.exe
Encuentre las imágenes de la versión anterior y más reciente en Docker Hub.
Puede compilar y ejecutar los tutoriales (en la CPU) en un contenedor Docker utilizando los archivos Dockerfile
y docker-compose.yml
proporcionados:
docker-compose build --build-arg USER_ID= $( id -u ) --build-arg GROUP_ID= $( id -g )
Nota :
Cuando ejecuta el contenedor Docker, el directorio del repositorio del host se monta como un volumen en el contenedor Docker para almacenar en caché los archivos de dependencia descargados y compilados, de modo que no sea necesario reconstruir o volver a descargar todo cuando se reinicia un contenedor. Para tener los permisos de archivo correctos, es necesario proporcionar sus ID de usuario y grupo como argumentos de compilación al crear la imagen en Linux.
docker-compose run --rm pytorch-cpp
bash
en modo interactivo en la carpeta 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}
Este repositorio tiene licencia del MIT como se indica en LICENCIA.