Libtorch在Win10下的另一种部署方法(不使用CMake)
目前网上流传的方法大多都是利用了cmake来部署,例如:
Windows使用C++和CMake调用Pytorch1.0模型
这种方法可以完成,但是libtorch包和OpenCV类似,都是包含了lib等文件,所以也可以像配置第三方库一样配置:
我使用的是VS2019,在官网安装最新的Debug版本的libtorch1.8.0
之后新建一个项目,在属性管理器中,配置项目属性
包含目录写入libtorch中的include
库目录写入lib
链接器中输入需要的lib文件,如果不知道要什么lib文件,可以把libtorch/lib中的所有lib文件都写进去
之后运行程序会报错,显示没有dll:
然后按照提示,把需要的dll文件从libtorch/lib中复制到项目Debug文件夹中:
这时程序已经可以运行,但是目前为止,发现一处和上面使用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")