Pytorch模型转TorchScript及部署

Pytorch模型转TorchScript

1.背景
通过cpp调用pytorch模型
2. 转换方法
Pytorch框架TorchScript模型转换方法
3. 部署

#include<opencv2/opencv.hpp>
#include <torch/torch.h>
#include <torch/script.h> 

int main()
{
	//定义使用cuda
	auto device = torch::Device(torch::kCUDA,0);
	//读取图片
	auto image = cv::imread("your path to\\flower.jpg");
	//缩放至指定大小
	cv::resize(image, image, cv::Size(224, 224));
	//转成张量
	auto input_tensor = torch::from_blob(image.data, { image.rows, image.cols, 3 }, torch::kByte).permute({ 2, 0, 1 }).unsqueeze(0).to(torch::kFloat32) / 225.0;
	//加载模型
	auto model = torch::jit::load("your path to\\resnet34.pt");
	model.to(device);
	model.eval();
	//前向传播
	auto output = model.forward({input_tensor.to(device)}).toTensor();
	output = torch::softmax(output, 1);
	std::cout << "模型预测结果为第" << torch::argmax(output) << "类,置信度为" << output.max() << std::endl;
	return 0;
}
————————————————
版权声明:本文为CSDN博主「AllentDan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/AllentDan/article/details/115313683
  1. 踩坑记录
    Pytorch C++部署 之 TorchScript 踩坑记录
    TorchScript使用的注意事项和常见错误
    自己的踩坑记录
    模型转换ok,cpp预测时报错 Error:double free or corruption (!prev)
    查到这个
    关于double free or corruption (!prev)错误
    检查了一下网络的forward()代码,发现该网络调用了一个方法来规范化输入的分辨率,将规范输入分辨率的代码直接放于forward()中,成功解除。(不知道是否是上述链接中的原因造成的,欢迎大家讨论)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch模型换为Tensorscript部署于C平台需要以下步骤: 首先,要将PyTorch模型换为Tensorscript模型。Tensorscript是一个用于高性能推理的图形执行模型,而PyTorch是一个用于深度学习训练和推理的框架。在换过程中,我们需要使用TorchScript API。这个API允许将PyTorch模型换为可序列化的脚本模型换过程中,我们需要确保模型中使用的所有操作和模块都被支持并换为Tensorscript的等效操作。有些高级功能和操作可能无法直接换,需要对其进行手动的调整和替换。 完成模型换后,我们可以开始部署这个Tensorscript模型到C平台。在部署之前,我们需要将Tensorscript模型保存为一个文件,以便在C平台中使用。可以使用TorchScript提供的函数将模型保存到硬盘上。 接下来,我们需要在C平台上使用一个能够加载并执行Tensorscript模型的库。一个常用的库是libTorch,它是PyTorch的C++前端库,可以加载和执行Tensorscript模型。 在C平台上部署之前,我们需要确保我们的环境已经准备好了libTorch的依赖项,并且有正确的库和头文件路径。 部署的代码可以使用C或C++编写,并且需要加载Tensorscript模型,并将输入数据传递给模型进行推理。部署过程还需要处理模型的输出结果,并根据需求将结果展示、保存或传递给其他程序进行进一步的处理。 总结起来,将PyTorch模型换为Tensorscript部署到C平台需要将模型换为Tensorscript模型,保存为文件,准备和安装libTorch的依赖项,并在C平台上编写代码来加载和执行Tensorscript模型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值