C++ 的程序如何调用Pytorch训练完的模型,最简单和有效的方法就是直接使用Pytorch c++ API. 网上这方面的资料并不多,遇过很多坑,想留下一点记录。
1. 版本
首先要确认python中的pytorch的版本,在对应下载c++ API. 如果没有对应,后续就会遇到模型导入问题。 因为Pytorch的模型是需要序列化以后才可以给C++使用,版本不匹配会导致导入后使用问题。
2. VS2017 配置
下载完官网提供的LIB,需要设置include和library。我自己下载是libtorch-win-shared-with-deps-1.8.1+cpu 和libtorch-win-shared-with-deps-debug-1.8.1+cpu。 因为测试需要,我还配置了opencv.
配置include:
opencv\build\include libtorch-win-shared-with-deps-debug-1.8.1+cpu\libtorch\include libtorch-win-shared-with-deps-debug-1.8.1+cpu\libtorch\include\torch\csrc\api\include
配置Lib
把libtorch/lib里面所有的lib都要写进去,不然编译不过
3. 使用调用
python: 序列化 需要用 torchscript https://pytorch.org/docs/stable/jit.html
traced = torch.jit.trace(model, (torch.rand(batch_size,channel, input_h,input_w))) traced

本文介绍了如何在VS2017中使用PyTorch C++ API调用预先训练的模型,强调了版本匹配、库配置和性能比较。调试版本较慢,Release版本性能与Python相当。建议Python用于训练和测试,C++适用于部署。
最低0.47元/天 解锁文章
772

被折叠的 条评论
为什么被折叠?



