在當今使用Python作為機器學習的主流語言,我們已經越來越難看到使用C++訓練模型的範例了。然而當您想在現實世界中的商用軟體使用您的模型時,Python的速度、和隱私/安全問題,都會讓您不想將模型儲存在雲上。有些善於在Microsoft上發展應用程式的團隊會用Azure\Python訓練模型(後端),再將模型轉為ONNX,並且基於(前端)效能考量而在C++或C#的Visual Studio開發環境下佈署。如果您的模型訓練並不特別依賴高速運算;又希望能在一個專案中就能達到訓練與預測的功能;那麼我們可以考慮PyTorch的LibTorch (C++ API)。
關於如何使用 python 在 PyTorch 中訓練模型,網路上已經有很多教學了。但是,關於如何在 Visual Studio C++ 使用LibTorch就沒那麼多了。參考了網路上的教學,寫了這篇簡易教學;想看原文的同學們,請點擊以下的連結。
"Setting up a C++ project in Visual Studio 2019 with LibTorch 1.6"- Manpreet Singh Minhas
https://towardsdatascience.com/setting-up-a-c-project-in-visual-studio-2019-with-libtorch-1-6-ad8a0e49e82c
PyTorch官網:USING THE PYTORCH C++ FRONTEND
https://pytorch.org/tutorials/advanced/cpp_frontend.html
Visual Studio Extension for LibTorch
https://github.com/mszhanyi/VSIXTorch
環境:
VS2019
PyTorch 1.11
NVidia CUDA v11.6
先到PyTorch官網下載GPU版本
Download here (Release version):
https://download.pytorch.org/libtorch/cu113/libtorch-win-shared-with-deps-1.11.0%2Bcu113.zip
Download here (Debug version):
https://download.pytorch.org/libtorch/cu113/libtorch-win-shared-with-deps-debug-1.11.0%2Bcu113.zip
分別下載後直接解壓縮並分開放置在
c:\libTorch-1-11\release...
c:\libTorch-1-11\debug...
然後到NVidia下載CUDA
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11
再到visual studio marketplace下載libtorch專案模板
https://marketplace.visualstudio.com/items?itemName=YiZhang.LibTorch001
第一次安裝時,切勿自行產生新的專案, 請使用專案模板產生專案,才能正確地連結應有的函式庫。