写在前面
这次的任务是将retinanet的预测部分用C++实现,所以有了这次配置libtorch的事;
这是一个过程的记录,可以直接从:此处看起
一、下载cmake;
官网下载即可,没什么可说的;
二、配置libtorch到vs
可参照下面的博客:https://blog.csdn.net/qq_35608277/article/details/89817027
第一步:使用vs 2019创建一个项目;

项目.cpp初始文件内容:
#include <torch/script.h> // One-stop header.#include <iostream>#include <memory>int main(int argc, const char* argv[]) {torch::Tensor tensor = torch::rand({3,3});std::cout << tensor < std::endl;}
第二步,新建CMakelists.txt文件,和.cpp文件在同一个目录下,并建立一个build文件夹;
第三步,编写CMakelists.txt内容:
cmake_minimum_required(VERSION 3.17 FATAL_ERROR)project(ConsoleApplication1)find_package(Torch REQUIRED)add_executable(ConsoleApplication1 ConsoleApplication1.cpp)target_link_libraries(ConsoleApplication1 "${TORCH_LIBRARIES}")set_property(TARGET ConsoleApplication1 PROPERTY CXX_STANDARD 14)
第四步,打开cmake-gui:

然后填写标红的两处,第一个source code就是放CMakelists.txt的目录,
第二个build the binaries,选择新建的bulid文件夹
第五步,点击Configure;
情况一:无弹窗出现,显示Configuring done,即使下方出现红字warning也不用管,再点击Generate即可;
情况二:出现弹窗,显示有错误;改正错误,下面提供我在使用中的一些错误,供参考;
三、错误
错误:出现无法找到toch、cuda、cudnn的DIR的问题;
类似这样(当然这个截图实际只是warning)
解决方案:手动复制DIR到cmake上;
1.对于torch,就是libtorch下的文件夹,
2.对于cuda,
该DIR的目录地址即为这个(标蓝的行)
但是可能你发现你的目录了并没有这个GPU Computing Toolkit,那么你需要下载CUDA;
下载方式:进入官网下载即可;
3.对于cudnn,(下载:绕过官方注册,安装)
一般是没有下载,所以仍然需要去官网下载,对于这个下载官网要求注册账户,下面是不注册账户的方式:
1.进入官网的下载选项,选择自己需要的下载项,网址:https://developer.nvidia.com/rdp/cudnn-archive
2.右键使用迅雷下(或者使用其他的下载器)
该方法来自于博客:https://blog.csdn.net/weixin_40392957/article/details/80207366
然后对于压缩包解压,对于文件夹中的文件,将每个文件(注意是文件,不是文件夹)复制到CUDA的同名文件夹下:

安装方式来自于博客:https://blog.csdn.net/sinat_23619409/article/details/84202651
其他错误:忘记保存了。。。
四、使用libtorch
1.打开build文件夹,打开如下文件:
2.但是还是有错误: “初始化”: 无法从“torch::jit::script::Module”转换为“std::shared_ptr”
错误原因:std::shared_ptr是libtorch测试版本使用的变量类型,现在已经变更
更改:
将
std::shared_ptr<torch::jit::script::Module> module = torch::jit::load(argv[1]);
更改为:
torch::jit::script::Module module = torch::jit::load(argv[1]);
参考博客:https://blog.csdn.net/qq_33507306/article/details/104427134
3.错误:
上述的内容对于下面操作并没有太大帮助
五、真正的坑:官方提供的libtorch文档的release版本只是针对linux,所以使用windows系统的情况下需要下载debug版,而很大的网上教程都是使用release来调试,所以会出现很多莫名奇妙的错误,只要使用debug来完成就可以了。
使用vs的项目属性来配置libtorch:
1.将debug编译器改为x64模式;
2.打开项目属性:
3.配置vc++目录的包含目录和库目录:(根据自己的libtorch的实际目录来配置)


4.配置链接器——输入选项中的附加依赖项:

建议将libtorch的lib目录下的所有.lib文件都加入:
torch.libc10.libc10_cuda.libcaffe2_module_test_dynamic.libcaffe2_nvrtc.libclog.libcpuinfo.liblibprotobufd.liblibprotobuf-lited.liblibprotocd.lib
5.应用并确定,然后再次运行,可能会出现缺少某个.dll文件,可以直接把lib中的所有.dll文件直接复制到main.cpp同一目录下,或者提示缺哪个复制哪个;
6.再次运行,即可看到结果:


