日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

win7 vs2017 程序报错_windows + VS2017 配置libpytorch

發布時間:2025/3/12 windows 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win7 vs2017 程序报错_windows + VS2017 配置libpytorch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為項目對實時性的要求,嘗試一波c++直接調用libpytorch。實現的同時,整理了網上的相關資料,希望對效率追求的同學提供一份幫助。

0.下載準備

下載安裝VS2017 和 cmake (3.0版本以上)

記得把bin目錄添加到環境變量path中。這里解釋一下,目前還不能直接使用VS直接配置成功libpytorch(如果讀者成功了可以@我,這篇文檔也就完成了使命就刪了),而是先借助cmake先編譯,達到曲線救國。

下載安裝opencv

可以參考博客:https://blog.csdn.net/qq_41175905/article/details/80560429,該博客中寫的很詳細。推薦opencv4.1.0

下載libtorch

下載地址:https://pytorch.org/get-started/locally/,這個根據自己情況選擇下載,因為我自己的是cuda10,并且我選擇使用release版本,所以我的選擇如下:

1. 準備文件

接下來使用cmake來進行配置吧,我們首先自己創建一個文件夾,存放我們的主程序main.cpp還有CMakeLists.txt,然后我們再創建一個build的空文件夾,之后我們編譯好的文件都存放在build文件夾里頭。

目錄結構大概就是這樣,假設這個文件夾存放在D盤:

example:

  • build (文件夾)
  • torchscript.py
  • model.pt(由 python torchscript.py 生成)
  • main.cpp
  • CMakeLists.txt

touchscript.py

import torch import torchvision# An instance of your model. model = torchvision.models.resnet18()# An example input you would normally provide to your model's forward() method. example = torch.rand(1, 3, 224, 224)# Use torch.jit.trace to generate a torch.jit.ScriptModule via tracing. traced_script_module = torch.jit.trace(model, example) traced_script_module.save("model.pt")

通過python touchscript.py ,則會生成我們上面main.cpp 需要的model.pt文件。

main.cpp

#include <torch/script.h> // One-stop header. #include <iostream> #include <memory>int main() {// Deserialize the ScriptModule from a file using torch::jit::load().torch::jit::script::Module module = torch::jit::load("F:/LabSources/PytorchCmake/model.pt");assert(module != nullptr);std::cout << "okn";// Create a vector of inputs.std::vector<torch::jit::IValue> inputs;inputs.push_back(torch::ones({ 1, 3, 224, 224 }));// Execute the model and turn its output into a tensor.torch::Tensor output = module.forward(inputs).toTensor();std::cout << output.slice(/*dim=*/1, /*start=*/0, /*end=*/5) << 'n';while (1); }

這是目前比較新的代碼,舊的代碼因為是測試版會出現語法錯誤,見 https://blog.csdn.net/qq_33507306/article/details/104427134

CMakeLists.txt

cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(example-app)set(CMAKE_PREFIX_PATH "D:Space.DeveloplibtorchsharecmakeTorch") find_package(Torch REQUIRED) find_package(OpenCV REQUIRED)if(NOT Torch_FOUND)message(FATAL_ERROR "Pytorch Not Found!") endif(NOT Torch_FOUND)message(STATUS "Pytorch status:") message(STATUS " libraries: ${TORCH_LIBRARIES}")message(STATUS "OpenCV library status:") message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " libraries: ${OpenCV_LIBS}") message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")add_executable(example-app example-app.cpp) target_link_libraries(example-app ${TORCH_LIBRARIES} ${OpenCV_LIBS}) set_property(TARGET example-app PROPERTY CXX_STANDARD 11)

其中,如果沒有set(CMAKE_PREFIX_PATH "D:Space.Develop libtorchsharecmakeTorch"),可能有的同學會報錯找不到Torch的錯誤。

2. Cmake編譯

Cmake有GUI編譯和命令行編譯,本文主要操作GUI為主,命令行編譯請見https://zhuanlan.zhihu.com/p/55292836。

首先我們打開cmake軟件,然后打開我們創建的目錄,我的目錄是F:/LabSource/Pytorch Cmake, 填好兩個目錄(創建目錄和其中的bin目錄)。

選擇generator,選擇64位,因為CUDA不支持32位運算。

點擊Configure,沒問題的話再點擊Configure,然后再點擊Generate就成功了。

如果遇到以下錯誤:

則我們根據錯誤,遇到下載缺少的資源,配在紅色區域。(紅色區域并不是都是錯誤,引起錯誤的是報錯信息里日志里提示的缺少資源的NotFound)。

解決辦法: 上圖所示問題需要我們下載對應版本的CUDNN,并將資源配置(include、lib等)在對應的變量里。如下:

最后,如果日志出現warning,雖然也是紅色警報,但是也可以繼續Generate。進入下一步。

3. VS2017啟動

然后打開build文件夾中的vcxporj文件,設置項目為啟動項目,并更改為release的x64模式,生成解決方案。

最后,還可能遇到兩中情況:

1.如果提示缺少dll,可以把LibTorch的lib文件夾加入環境變量,

可以把lib文件夾的dll全拷到cpp目錄下。

2.無法定位程序輸入點到xxx.dll,

解決辦法: 則到pytorchlib下面找到放到C:WindowsSystem32和C:WindowsSysWOW64下即可。

4.輸出

已經配置好啦,希望大家都配置成功。

好的教程鏈接,本文基于以下教程更新:

https://blog.csdn.net/gulingfengze/article/details/92013360

https://zhuanlan.zhihu.com/p/68901339

https://zhuanlan.zhihu.com/p/55292836

問題解決鏈接:

https://www.cnblogs.com/yeshengCqupt/p/10448476.html

https://www.lizenghai.com/archives/29637.html

https://blog.csdn.net/qq_33507306/article/details/104427134

https://www.cnblogs.com/xym4869/p/11255598.html

總結

以上是生活随笔為你收集整理的win7 vs2017 程序报错_windows + VS2017 配置libpytorch的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。