开发环境:
- VS2017(VS2015亲测也能通过)
- win10
- cmake>=3.0
- libtorch1.6-release
pytorch中libtorch加入了对C++的支持,以方便集成。但不同系统、开发环境下遇到的问题不同,这里进行整理。此方案为win10+vs下集成代码验证。
1、准备工作
1.1、cmake下载
用vs编译也是可以的,本文选用vs编译。确定有>=3.0版本的cmake和比较高的vs版本。cmake下载。
链接:https://pan.baidu.com/s/1C1n9yHlwR43YOkzoIpeweQ
提取码:gml3
1.2、opencv安装
下载地址:Releases - OpenCV
opencv-2.4.13.6-vc14
链接:https://pan.baidu.com/s/1pe6KLeBi9K6jqch9nxGLmw
提取码:ey9l
1.3、LibTorch下载
在pytorch官网下载对应的LibTorch。有GPU版CP官网下载对应的LibTorch。有GPU版CPU版、有DEBUG和RELEASE版。下载匹配的对应版本。
然后解压。
有include有lib,跟其他库结构差不多。
2、VS配置
官方和其他很多都是用的cmake,其实vs也能用。新建一个空项目,然后和VS配置opencv一样,把LibTorch的include和lib添加到“包含目录”和“库目录”中就行,还需要在链 接器中加入:
c10.lib
torch_cpu.lib
一般来说2个cpu上就可足够测试了,以防万一可以把所有lib都加上:
c10.lib
c10_cuda.lib
caffe2_nvrtc.lib
caffe2_module_test_dynamic.lib
clog.lib
dnnl.lib
libprotobuf.lib
libprotobuf-lite.lib
libprotoc.lib
mkldnn.lib
torch.lib
torch_cpu.lib
torch_cuda.lib
还有两个地方需要修改:
第一项:属性->C/C++ ->常规->SDL检查->否。
第二项:属性->C/C++ ->语言->符合模式->否。
可选项:
第三项:配置属性->常规->C++语言标准,设置为C++17。
第四项:配置属性->调试->环境,设置环境变量,添加bin目录:PATH=libtorch bin path;%PATH%;
第五项:若缺少宏,属性->C/C++->预处理器->预处理器定义,设置宏。
3、环境测试验证
引入两个lib文件:c10.lib、torch_cpu.lib。
测试代码:
#include<iostream>
#include<torch/script.h>
int main()
{
torch::Tensor t1 = torch::tensor({ 10,1,2 });
std::cout << t1[0] << std::endl;
system("pause");
}
打印如下结果,则为正确:
使用GPU:libtorch c++部署-使用GPU_alex1801的博客-CSDN博客_libtorch 指定gpu
参考文章:
1、pytorch1.3版本转C++ API(libtorch)踩坑记录