MSRResNet部署TensorRT踩坑

MSRResNet部署踩坑

  • onnx转tensorRT的问题

onnx转tensorRT后,推理结果完全错误

原因:
在尝试直接将torch转换成tensorRT推理引擎的时候发现了问题原因

x = torch.ones((1, 3, 180, 320)).cuda()
trt_path = os.path.join(model_pool, f"{model_name}_{resolution}_trt_fp32.pth")


from models.network_msrresnet import MSRResNet1 as net
model = net(in_nc=n_channels, out_nc=n_channels, nc=64, nb=16, upscale=4)
model.load_state_dict(torch.load(model_path), strict=True)
model.eval()
for k, v in model.named_parameters():
    v.requires_grad = False
model = model.to(device)
model_trt = torch2trt(model, [x])
torch.save(model_trt.state_dict(), trt_path)

报错如下:

Warning: Encountered known unsupported method torch.nn.functional.pixel_shuffle
Warning: Encountered known unsupported method torch.nn.functional.pixel_shuffle
[12/11/2023-10:43:11] [TRT] [E] 3: HRconv:0:CONVOLUTION:GPU: at least 4 dimensions are required for input.

结论:TensorRT推理的时候无法转换nn.functional.pixel_shuffle的功能

解决方案:

将该步骤放在函数外或者在TensorRT中加入自编函数插件,手动实现pixel_shuffle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值