【ATU Book-i.MX8系列 - ONNX】ONNX 介绍与环境架设

一.   概述

伴随着人工智慧、机器学习与深度学习的盛行,Google、MicroSoft 等数家科技大厂开始投入大量资金培育人才。并以研究与竞赛方式来促进整个 AI 领域的发展,借此产出更多强大的模组、神经网路架构、以及推理框架,像是 Google 的 Tensorflow / Tensorflow Lite 、Facebook 的 Pytorch / Caffe、MicroSoft 的 Cognitive Toolkit 等等深度学习框架!! 然而,近年来有团队提出了一套整合想法,将大多数的深度学习框之模组进行整合,并可以相互转换与应用。就是本系列的主题 ONNX 开放神经网路交换格式(Open Neural Network Exchange),如同下图所示,这里将提供一系列相关的介绍,从环境架设、模组转换、模组资源、优化与推理引擎以及最后将带领各位以 NXP i.MX8 平台内的 ONNX 推理引擎进行物件识别 !!

 

若新读者欲理解人工智能、机器学习以及深度学习的差异,可点选查阅下方博文
大大通精彩博文   探讨机器学习与深度学习之差异

 

 

 ONNX 系列博文 - 文章架构示意图 (1)

 

 

ONNX 系列博文 - 文章架构示意图 (2)

 

 

二.  ONNX 开放神经网路交换格式 (Open Neural Network Exchange)

ONNX 开放神经网路交换格式是针对深度学习神经网路框架所设计的一种通用开放的文件格式,用途为将储存训练好的模型、权重资讯进行转换与优化。起初由 MicroSoft 和 Facebook 于 2017 年共同推出,其理念得到各大企业共同合作,故衍生出多元机器学习网路框架的支持。

ONNX 合作企业对象

 

ONNX 迅速发展已成为深度学习模型的楷模,提供一套相容性极佳的标准格式,为各深度神经网路框架提供良好的交互作用 ! ! 如下图所示,能将各 模型框架(framework) 转换为 ONNX 格式,并由 ONNX Runtime 推理引擎运行于各种硬体 (CPU/GPU/NPU),即可达到硬体最佳化之作用。

ONNX 交换作用示意图

 

 

三.  ONNX 环境架设方式

ONNX 官方提供数个作业系统的安装方式,可以快速让使用者上手!!

ONNX Github : https://github.com/onnx/onnx

 ONNX 环境架设 :  

(1) Linux 安装步骤

Step 1 : 下载并安装必要环境 Anaconda

Step 2 : 开启终端机,确认安装 Tensorflow 1.5.0、Protobuf 和 NumPy 套件

$ conda install -c conda-forge tensorflow==1.5.0 protobuf numpy

Step 3 : 下载 ONNX 函式库

$ git clone https://github.com/onnx/onnx.git

Step 4 : 安装ONNX 函式库

$ cd onnx

$ git submodule update --init --recursive

$ python setup.py install



(2) Windows 安装步骤

Step 1 : 下载并安装必要环境 Anaconda

Step 2 : 开启终端机,确认安装 Tensorflow 1.5.0、Protobuf 和 NumPy 套件

 $ conda install -c conda-forge tensorflow==1.5.0 numpy protobuf libprotobuf=3.11.3

Step 3 : 下载 ONNX 函式库

$ git clone https://github.com/onnx/onnx.git

Step 4 : 安装ONNX 函式库

$ cd onnx
$ git submodule update --init --recursive
$ set USE_MSVC_STATIC_RUNTIME=0
$ set CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON   -DProtobuf_USE_STATIC_LIBS=OFF -DONNX_USE_LITE_PROTO=ON"
$ python setup.py install

 

 ONNX 使用方式 :  

Step 1 : 开启终端机,启动 Python 环境

$ python

Step 2 : 尝试引用 ONNX 函式库与查询版本

$ import onnx
$ onnx.__version__

 

 

四.  结语

经由上述介绍各位应该对 ONNX  作用与目标有一定程度的了解。并由官方提供的快速安装方式,即可成功安装 ONNX 套件 !! 而下一篇文章将会介绍 ONNX 交换格式的精随,就是模组转换的部分 !! 将利用网路上现成的模组资源将其转换为 ONNX 格式 !! 敬请期待 !!

 

五.  参考文件

[1] 官方网站 - ONNX

如有任何相关 ONNX 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 ONNX 的技术文章 !!敬请期待 【ATU Book-i.MX8 系列 - ONNX
 !!

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论