適合所有人的 PyTorch 教程的 C++ 實現
作業系統(編譯器)LibTorch | 2.3.0 |
---|---|
macOS(clang 11、12、13) | |
Linux(海灣合作委員會 9、10、11) | |
Windows(MSVC 2019、2022) |
該儲存庫提供了 C++ 教程程式碼,供深度學習研究人員學習 PyTorch (即第 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 | 在建置過程中為預先學習的模型/權重建立所有必要的腳本模組檔案。需要安裝 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 的Release版本,因此必須將--config Release
附加到建置指令中。
資料集下載和腳本模組創建如何運作:
DOWNLOAD_DATASETS
為ON
,您選擇建立的教學所需的資料集將下載到pytorch-cpp/data
(如果它們尚未存在)。CREATE_SCRIPTMODULES
為ON
,您選擇建立的教學所需的預學習模型/權重的腳本模組檔案將在對應教學課程來源資料夾的model
資料夾中建立(如果它們尚不存在)。 要建立所有教程,請使用
cmake --build build
您可以選擇僅建立basics
、 intermediate
、 advanced
或popular
類別之一的教學課程。例如,如果您只對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}
筆記:
目標參數是教學的資料夾名稱,所有底線都替換為連字號。
給 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 作為建置參數。
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}
該儲存庫已獲得 MIT 許可,如許可證所示。