Libtorch部署模型


Libtorch 是Pytorch官方提供的C++ API,使用方法可以说是很大程度上还原了Pytorch。

一、环境配置

Libtorch下载的版本一定要和Pytorch版本对应,我这里提供的是release版本的Libtorch
注:
1.原作者GitHub上推荐的是用Pytorch 0.4.0来跑,但是Libtorch是从Pytorch 1.0开始支持的,所以尽量升级为1.x的来运行
2.!!!Pytorch,Libtorch,CUDA,cuDNN版本一定要一一对应
3.训练模型生成.pth的Pytorch版本也最好和转换为torchscript的.pt文件最好也一致,不要用0.4.0的训练用1.7.0的转换

二、torchscript生成.pt文件

转换之前修改BASNet.py文件(注意这个时候应该已经是训练完了,不要在训练前修改)344行 return F.sigmoid(dout), F.sigmoid(d1), F.sigmoid(d2), F.sigmoid(d3), F.sigmoid(d4), F.sigmoid(d5), F.sigmoid(d6), F.sigmoid(db)只return第一个值。不更改的话C++那边forward的时候会报错。似乎也能用tuple来接收多个值,这里我就没有研究了。

import torch
from model import BASNet	#model文件夹下的BASNet.py文件

model_dir = r"./saved_models/basnet_bsi/basnet_best.pth"

model = BASNet(3,1)			# channels, classes
model.load_state_dict(torch.load(model_dir))
if torch.cuda.is_available():
	model.cuda()
model.eval()

example = torch.rand(1,3,256,256).cuda() 		# input example
traced_script_module = torch.jit.trace(model,example)

traced_script_module.save(r"./basnet.pt")

.cuda()很重要,挂载到CUDA上,在C++那边既可以用CPU计算,也可以用GPU计算。反之则只能用CPU计算。
参考:TorchScript使用的注意事项和常见错误

三、Libtorch部署

Libtorch配置有两种方式,一种是CMake,一种是VS手动配置。这里我选择的是VS手动配置
下载好的Libtorch文件列表如下:
在这里插入图片描述

1.添加环境变量

在这里插入图片描述

2.VS配置环境

(1)创建一个空项目

(2)添加各种路径

i.项目—》属性—》C/C++—》常规—》附加包含目录

D:\Libraries\libtorch\include
D:\Libraries\libtorch\include\torch\csrc
  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值