如何用C++来部署深度学习模型libtorch

知乎回答
在服务器上部署,可以采用TensorRT加速;在CPU或FPGA上部署可以采用OpenVINO加速;或者也可以采用框架对应的C++库,比如pytorch提供的libtorch库;针对这些方案的部署方式可以参考我的文章。这些方式都可以采用C++实现,而且难度不大,效果又极好。对于C++的知识量而言,大多数是C++的基本语法,还有一些标准模板库的知识,比如vector等等,入门不难
https://www.zhihu.com/question/447224038

1 C++部署上线

https://blog.csdn.net/weixin_44233336/article/details/110432566

在这里插入图片描述

2 安装libtorch

#include "torch/script.h"
#include "torch/torch.h"
#include <iostream>
#include <memory>
using namespace std;
 
int main(int argc, const char* argv[]){
    if (argc != 2) {
        std::cerr << "usage: example-app <path-to-exported-script-module>\n";
        return -1;
    }
 
    // 读取TorchScript转化后的模型
    torch::jit::script::Module module;
    try {
        module = torch::jit::load(argv[1]);
    }
 
    catch (const c10::Error& e) {
        std::cerr << "error loading the model\n";
        return -1;
    }
 
    module->to(at::kCUDA);
    assert(module != nullptr);
 
    // 构建示例输入
    std::vector<torch::jit::IValue> inputs;
    inputs.push_back(torch::ones({1, 3, 224, 224}).to(at::kCUDA));
 
    // 执行模型推理并输出tensor
    at::Tensor output = module->forward(inputs).toTensor();
    std::cout << output.slice(/*dim=*/1, /*start=*/0, /*end=*/5) << '\n';}

/************************* 输出结果 ****************************************
-0.8297, -35.6048, 12.4823
[Variable[CUDAFloatType]{1,3}]
*************************************************************************/

3 TensorRT是Nvidia开发的一个神经网络前向推理加速的C++库

https://zhuanlan.zhihu.com/p/158895888
Pytorch -> Onnx -> TensorRT

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值