Libtorch在Win10下的另一种部署方法(不使用CMake)

Libtorch在Win10下的另一种部署方法(不使用CMake)

目前网上流传的方法大多都是利用了cmake来部署,例如:

Windows使用C++和CMake调用Pytorch1.0模型

这种方法可以完成,但是libtorch包和OpenCV类似,都是包含了lib等文件,所以也可以像配置第三方库一样配置:
Libtorch在Win10下的另一种部署方法(不使用CMake)
我使用的是VS2019,在官网安装最新的Debug版本的libtorch1.8.0
之后新建一个项目,在属性管理器中,配置项目属性
Libtorch在Win10下的另一种部署方法(不使用CMake)
包含目录写入libtorch中的include
Libtorch在Win10下的另一种部署方法(不使用CMake)
库目录写入lib
Libtorch在Win10下的另一种部署方法(不使用CMake)
链接器中输入需要的lib文件,如果不知道要什么lib文件,可以把libtorch/lib中的所有lib文件都写进去
Libtorch在Win10下的另一种部署方法(不使用CMake)
之后运行程序会报错,显示没有dll:
Libtorch在Win10下的另一种部署方法(不使用CMake)
然后按照提示,把需要的dll文件从libtorch/lib中复制到项目Debug文件夹中:
Libtorch在Win10下的另一种部署方法(不使用CMake)
这时程序已经可以运行,但是目前为止,发现一处和上面使用CMake的方法不同的地方:
Libtorch在Win10下的另一种部署方法(不使用CMake)
这里将Torch转为OpenCV的Mat时出错,需要把desc.data<float>()换成desc.data_ptr<float>(),否则会报错,但是在使用CMake的方法中不会报错,这里还不知道为什么。

另外,由于版本问题,加载模型的方法从
std::shared_ptr<torch::jit::script::Module> module = torch::jit::load("model.pt")
改成了
torch::jit::script::Module model = torch::jit::load("model.pt")

上一篇:基于RV1126平台imx291分析 --- 基于subdev的方式


下一篇:windows提权