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

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

被折叠的 条评论
为什么被折叠?



