Implementação C++ de tutoriais PyTorch para todos
SO (Compilador)LibTorch | 2.3.0 |
---|---|
macOS (clang 11, 12, 13) | |
Linux (gcc 9, 10, 11) | |
Windows (msvc 2019, 2022) |
Este repositório fornece código tutorial em C++ para pesquisadores de aprendizagem profunda aprenderem PyTorch (ou seja, Seção 1 a 3)
Tutorial Python : https://github.com/yunjey/pytorch-tutorial
Nota : Os tutoriais interativos estão atualmente em execução na versão noturna do LibTorch .
Portanto, existem alguns tutoriais que podem falhar ao trabalhar com a versão noturna .
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 usuários do Windows:
Libtorch suporta apenas Windows de 64 bits e um gerador x64 precisa ser especificado. Para o Visual Studio, isso pode ser feito anexando-A x64
ao comando acima.
Algumas opções úteis:
Opção | Padrão | Descrição |
---|---|---|
-D CUDA_V=(11.8|12.1|none) | none | Baixe o LibTorch para uma versão CUDA ( none = baixe a versão da CPU). |
-D LIBTORCH_DOWNLOAD_BUILD_TYPE=(Release|Debug) | Release | Determina qual versão do tipo de compilação libtorch baixar (relevante apenas no Windows ). |
-D DOWNLOAD_DATASETS=(OFF|ON) | ON | Baixe os conjuntos de dados necessários durante a construção (somente se eles ainda não existirem em pytorch-cpp/data ). |
-D CREATE_SCRIPTMODULES=(OFF|ON) | OFF | Crie todos os arquivos scriptmodule necessários para modelos/pesos pré-aprendidos durante a construção. Requer python3 instalado com pytorch e torchvision. |
-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch | <empty> | Ignore o download do LibTorch e use sua própria versão local (consulte Requisitos). |
-D CMAKE_BUILD_TYPE=(Release|Debug|...) | <empty> | Determina o tipo de compilação do CMake para geradores de configuração única (consulte a documentação do 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 usuários do Windows (Visual Studio):
O script CMake baixa a versão Release do LibTorch, então--config Release
deve ser anexado ao comando build.
Como funcionam o download do conjunto de dados e a criação do módulo de script:
DOWNLOAD_DATASETS
estiver ON
, os conjuntos de dados exigidos pelos tutoriais que você escolher construir serão baixados para pytorch-cpp/data
(se ainda não existirem lá).CREATE_SCRIPTMODULES
estiver ON
, os arquivos scriptmodule para os modelos/pesos pré-aprendidos exigidos pelos tutoriais que você escolher construir serão criados na pasta model
da pasta de origem do respectivo tutorial (se ainda não existirem). Para construir todos os tutoriais, use
cmake --build build
Você pode optar por criar tutoriais apenas em uma das categorias basics
, intermediate
, advanced
ou popular
. Por exemplo, se você estiver interessado apenas nos tutoriais basics
:
cmake --build build --target basics
# In general: cmake --build build --target {category}
Você também pode optar por criar apenas um único tutorial. Por exemplo, apenas para construir o tutorial do modelo de linguagem:
cmake --build build --target language-model
# In general: cmake --build build --target {tutorial-name}
Observação :
O argumento alvo é o nome da pasta do tutorial com todos os sublinhados substituídos por hifens.
Dica para usuários da versão CMake >= 3.15 :
Você pode especificar vários alvos separados por espaços, por exemplo:cmake --build build --target language-model image-captioning
build/tutorials
. Por exemplo, supondo que você esteja no diretório pytorch-cpp
e queira mudar para a pasta do tutorial básico do pytorch: cd build/tutorials/basics/pytorch_basics
# In general: cd build/tutorials/{basics|intermediate|advanced|popular/blitz}/{tutorial_name}
pytorch_basics
-> nome do executável: pytorch-basics
(ou pytorch-basics.exe
no Windows)). Por exemplo, para executar o tutorial básico do pytorch:./pytorch-basics
# In general: ./{tutorial-name}
. pytorch-basics.exe
# In general: .{tutorial-name}.exe
Encontre as imagens da versão mais recente e anterior no Docker Hub.
Você pode criar e executar os tutoriais (na CPU) em um contêiner Docker usando os arquivos Dockerfile
e docker-compose.yml
fornecidos:
docker-compose build --build-arg USER_ID= $( id -u ) --build-arg GROUP_ID= $( id -g )
Observação :
Quando você executa o contêiner do Docker, o diretório de repositório do host é montado como um volume no contêiner do Docker para armazenar em cache os arquivos de dependência de compilação e download, para que não seja necessário reconstruir ou baixar novamente tudo quando um contêiner for reiniciado. Para ter permissões de arquivo corretas, é necessário fornecer seus IDs de usuário e grupo como argumentos de construção ao construir a imagem no Linux.
docker-compose run --rm pytorch-cpp
bash
no modo interativo na pasta 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 repositório está licenciado pelo MIT conforme fornecido em LICENSE.