介绍
本文首先介绍如何在Windows环境下对Libtorch环境进行配置,经过配置之后可以在C++程序中实现Pytorch的功能。
环境
Windows10平台
显卡RTX2080super
与20系显卡对应版本的CUDA和CUDNN
visual studio 2017 及以上
opencv 4.5.0
libtorch 1.7
注意,libtorch版本不能低于pytorch版本,visual studio 2015及之前的版本在配置libtorch时会报缺少符号错误,原因是微软的VC140无法编译libtorch。
Visual Studio
选择2017及以上版本,2015以下版本不支持libtorch。安装教程请参考VS2017安装教程。安装时,在VS安装器的工作负载选择页面勾选“使用C++的桌面开发”选项。
OpenCV
无特殊版本要求,尽量选择OpenCV 4以上的稳定版本。安装时尽量把路径设置为英文路径。将OpenCV中的\build\x64\vc14\bin文件夹配置到环境变量中.
Libtorch
Libtorch版本一般不低于模型训练环境,请按CUDA版本选择相应的Libtorch release版本,下载页面见Libtorch官网。
下载解压后得到如下文件
将libtorch中的bin文件夹配置到环境变量中。
配置项目属性
在VS2017中新建一个空项目,配置release x64的属性页。
1、添加include
libtorch\include\torch\csrc\api\include
libtorch\include
opencv\build\include
到C/C++->General->Additional Include Directories
2、添加lib
libtorch\lib
opencv\build\x64\vc14\lib
到Linker->General->Additional library Directories
3、添加依赖库的文件名:Linker->input->Additional Dependencies
opencv_world450.lib
asmjit.lib
c10.lib
c10d.lib
c10_cuda.lib
caffe2_detectron_ops_gpu.lib
caffe2_module_test_dynamic.lib
caffe2_nvrtc.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
gloo.lib
gloo_cuda.lib
libprotobuf-lite.lib
libprotobuf.lib
libprotoc.lib
mkldnn.lib
torch.lib
torch_cpu.lib
torch_cuda.lib
验证配置结果
CPP代码如下
#include <iostream>
#include <torch/torch.h>
int main()
{
torch::Tensor tensor = torch::rand({ 5,3 });
std::cout << tensor << std::endl;
return EXIT_SUCCESS;
}
配置无误的话,该函数会输出一个5行3列的张量,包含一组[0, 1)的随机数。