其他模型转化为onnx模型

torch转onnx

import torch
from unet import UNet
import onnx
from onnx import shape_inference

weight_path = 'checkpoints/checkpoint_epoch5.pth'
onnx_path = 'best.onnx'
model = UNet(n_channels=3, n_classes=12)
state_dict = torch.load(weight_path)
del state_dict['mask_values']
model.load_state_dict(state_dict)
model.eval()
input = torch.randn(1, 3, 224, 224)  # 网络输入
input_names = ["input"]
output_names = ["output"]
torch.onnx.export(model, input, onnx_path, input_names=input_names, output_names=output_names, opset_version=11)

# 显示网络输入
# model = onnx.load_model(onnx_path)
# onnx.save(onnx.shape_inference.infer_shapes(model), onnx_path)

keras转onnx

import keras2onnx
import onnx
from keras.models import load_model
from onnx import shape_inference

model_path = 'best.h5'
model = load_model(model_path)
# print(model.name)
onnx_model = keras2onnx.convert_keras(model, model.name)
save_file = 'best.onnx'
#
onnx.save_model(onnx_model, save_file)
model = onnx.load_model(save_file)
# print(model.graph.input[0].type.tensor_type.shape.dim[0].dim_param)
# 将动态图转化为静态图
model.graph.input[0].type.tensor_type.shape.dim[0].dim_value = 1
model.graph.output[0].type.tensor_type.shape.dim[0].dim_value = 1

onnx.save(onnx.shape_inference.infer_shapes(model), save_file)

tf转onnx

python -m tf2onnx.convert --saved-model ./checkpoints/yolov4.tf --output model.onnx --opset 11 --verbose

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值