写在前面
LibTorch
是PyTorch
对应在C++环境中的表示,用于深度学习神经网络模型的部署落地。本文将记录如何在VS
中配置CPU
Debug
版本的LibTorch
环境。
配置方法总览
总的来说,VS中LibTorch环境的配置方法和OpenCV
环境以及VS中CUDA环境的配置方法,连同上篇文章提到的ncnn
环境配置步骤基本一致,即都要配置如下三个地方:
属性页-VC++目录-包含目录
属性页-VC++目录-库目录
链接器-输入-附加依赖项
下面将详细介绍环境配置方法。
详述配置方法
下载LibTorch
第一步当然是先下载,超级全的下载路径可以参考这里,下载后解压,可以得到下面的文件:
新建.props属性表
第二步,在VS中新建项目,并在属性管理器
窗口新建自己的.props
属性表1,不妨取名为libtorch170_d.props
(当然最好还是要加上cpu字眼,以和gpu版本区分开来)。
在.props
文件中配置包含目录
和库目录
。
其中包含目录
有2个,分别是2:
\libtorch\include\torch\csrc\api\include
\libtorch\include
库目录
有1个:
\libtorch\lib
最后,在
链接器-输入-附加依赖项
中填入如下的.lib文件:
asmjit.lib
c10.lib
c10d.lib
caffe2_module_test_dynamic.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
gloo.lib
mkldnn.lib
torch.lib
torch_cpu.lib
【附】:LibTorch1.7.0 release
版本的.lib文件配置如下:
asmjit.lib
c10.lib
c10d.lib
caffe2_module_test_dynamic.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
gloo.lib
libprotobuf.lib
libprotobuf-lite.lib
libprotoc.lib
mkldnn.lib
torch.lib
torch_cpu.lib
至此,cpu debug版本的LibTorch
环境配置完毕。
环境测试
环境配置完毕后,进行测试,以检查是否配置成功。
#include <stdio.h>
#include <torch/torch.h>
#include <torch/script.h>
#include <iostream>
int main() {
torch::Tensor a = torch::rand({ 2,3 });
std::cout << a << std::endl;
return 0;
}
执行上述代码后,如果能输出下面的语句,则说明配置成功。
报错解决
std: 不明确的符号
环境配置完毕后,生成项目,可能会报出std: 不明确的符号
的错误,该错误是std冲突问题。该报错的解决方法如下,需要修改两个位置:
项目 -> 属性 -> C/C++ -> 常规 -> SDL检查 -> 否
项目 -> 属性 -> C/C++ -> 语言 -> 符号模式 -> 否
请注意,修改时需要重新从 项目—属性
进入,不是双击属性表,属性表设置后不起作用,而且一定要看清楚项目属性窗口对应的到底是Debug
还是Release
!
按照上述方式操作完毕之后,再重新编译,之前的报错即消失,问题得到解决。
写到这里,差不多本文也就要结束了。如果我的这篇文章帮助到了你,那我也会感到很高兴,一个人能走多远,在于与谁同行。