深度学习框架转换:pytorch 转 onnx

本文介绍了如何将PyTorch模型转换为ONNX格式,以实现跨框架兼容。讨论了安装过程、转换示例及可能遇到的版本不匹配和OP更改警告等问题,提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Open Neural Network Exchange(简称 ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

ONNX 是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如 Pytorch, MXNet)可以采用相同格式存储模型数据并交互。ONNX 的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在 Github 上。目前官方支持加载 ONNX 模型并进行推理的深度学习框架有:Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持ONNX。

ONNX Runtime 是针对 ONNX 模型的以性能为中心的引擎,可在多个平台和硬件 (Windows,Linux 和 Mac 以及 CPU 和 GPU 上) 高效地进行推理。ONNX Runtime 可大大提高多个模型的性能。

安装

pip install onnx
pip install onnxruntime

注意:如果遇到代码运行的错误,在排除了代码本身语法等使用错误后,仍为解决问题,考虑是否是 onnx 和 onnxruntime 版本的问题。

pytorch2onnx 示例

pytorch2onnx 的一个简单示例。

# -*- coding:utf-8 -*-

# @Name:         torch2onnx.py
# @Author:       GJW
# @Time:         2020/6/2 16:22

import onnx
import onnxruntime
import torch
import numpy as np
from models import Darknet as yolov3

# Initialize model with the pretrained weights
weight_path = "./yolov3.pth"
model_path = "./yolov3.cfg"
batch_size = 1
img_size = 416
torch_model = yolov3(model_path, img_size)

map_location 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值