深度学习之格式转换笔记(一):模型文件pt转onnx转tensorrt格式实操成功

本文介绍了如何将PyTorch模型转换为ONNX格式,并详细说明了转换过程。接着,展示了如何使用TensorRT将ONNX模型加速,包括设置配置和读取引擎。重点在于模型转换与性能提升技术的应用。

在这里插入图片描述

文章目录

pt 转 onnx

模型文件后缀说明

在深度学习中,常见的模型文件后缀有.pt、.pth 和.pkl。这些后缀名的模型文件本质上在格式上并无区别,只是不同开发者根据个人喜好选择使用不同的后缀。通常在保存模型文件时,常用的函数是 torch.save()

保存与调用模型

保存

使用 torch.save(model.state_dict(), mymodel.pth) 语句来保存模型,这种方式只保存模型的权重参数,而不保存模型的结构。

调用

调用模型时,需要先重新构建模型结构,示例代码如下:

model = My_model(*args, **kwargs)  
pthfile = r'绝对路径' 
loaded_model = torch.load(pthfile, map_location='cpu')
model.load_state_dict(loaded_model['model'])
model.eval() 

上述代码中,model.eval() 用于不启用 BatchNormalizationDropout,确保在推理过程中不改变模型的权值。

pt 转 onnx 代码实现

from nn.mobilenetv3 import mobilenetv3_large,mobilenetv3_large_full,mobilenetv3_small
import torch
from nn.models import DarknetWithShh
from hyp import hyp

def convert_onnx():
    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    model_path = 'weights/mbv3_large_75_light_final.pt' 
    backone = mobilenetv3_large(width_mult=0.75)
    model = DarknetWithShh(backone, hyp,light_head=True).to(device)

    model.load_state_dict(torch.load(model_path, map_location=device)['model'])

    model.to(device)
    model.eval()
    dummy_input = torch.randn(1, 3, 32, 32
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZY_dl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值