ONNX初体验

  |   0 评论   |   0 浏览

背景

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

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

初体验

预定义的模型

https://github.com/onnx/models/

声学相关的有:

  • Speech recognition with deep recurrent neural networks:ASR
  • Deep voice: Real time neural text to speech:TTS
  • Sound Generative models:TTS

下载模型

brew install git-lfs

# 查看所有模型
git lfs ls-files

# 下载指定模型
git lfs pull --include="vision/super_resolution/sub_pixel_cnn_2016/model/super-resolution-10.onnx" --exclude=""

# 下载所有模型
git lfs pull --include="*" --exclude=""

查看模型结构

python3 -m pip install netro
netron

推理

安装依赖

python -m pip install onnxruntime -i https://mirrors.aliyun.com/pypi/simple        # CPU
python -m pip install onnxruntime-gpu -i https://mirrors.aliyun.com/pypi/simple # GPU

参考