「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>人工知能(AI)]]([[人工知能(AI)]]
--[[機械学習(machine learning)]]
--深層学習(deep learning)
-[[戻る>深層学習(deep learning)]]

*目次 [#hedcc71a]
#contents

*概要 [#pa443c1e]
Open Neural Network Exchange (ONNX)
-機械学習フレームワーク(FX)間において相互運用を可能にする為の取り組み
-オープンソースの機械学習や人工知能のモデルを表現する為の代表的なフォーマット
-フォーマットとは、モデルを記述する統一インターフェースの提供を指す。
-2017年9月に、FacebookとMicrosoftが、このプロジェクトを始動した。

*詳細 [#v78a1f86]
-各フレームワークは学習したモデルをONNX形式で出力する。
-プラットフォームはONNX実行環境を提供し、どこでもモデル推論を実行できる。

**開発の背景 [#z3f893b1]
推論(評価)に焦点を当て、

-拡張可能な計算グラフモデル
-組み込み演算子
-標準データ型の定義

を提供する。

***FXの相互運用性 [#xf2edefd]
開発者が複数のFXでのデータのやり取りを簡単に行えるようにする。
-開発工程や機械学習の高速処理、
-モバイルデバイスでの推論などの特定の段階において、

***最適化の共有 [#l5af43d7]
ONNXを対象に調整すれば、複数のFXにおけるDNNのパフォーマンスを一度に改善できる。

**2つのサブ仕様 [#o3aebbae]

***IR [#s3469d01]
Intermediate Representation (IR)は~
ONNXの基本データ型と計算グラフを定義するサブ仕様

-基本データ型 FLOAT, INT8, BFLOAT16 等
-入出力 Tensor, Sequence, Map
-計算グラフ Model, Graph, Node 等の要素

を定義する。

***Operator [#y1fa40fd]
-[[IR]]はONNX Operatorで定義される標準演算子に追加して、~
独自の拡張演算子を受け入れられるように設計されている。

-ビルトイン演算子はサブ仕様 Operator specifications~
により3種類の演算子セット(Opset)が定義されている。
--ai.onnx(Default
--ai.onnx.ml
--ai.onnx.training 

**ONNX Runtime(ORT) [#d10cc611]
-様々な環境におけるONNXモデルの推論・学習高速化を目的としたオープンソースプロジェクト
-プラットフォームを問わず単一のRuntime APIを介してONNXモデルを利用できる。
-またデプロイ環境に合わせた最適化を自動でおこなう。
-アクセラレータ・ランタイム抽象化とパフォーマンス最適化の両立を設計方針を掲げており、~
ONNXモデルの自動分割と最適アクセラレータによるサブモデル実行によりこれを実現している。

*参考 [#z00b309b]
-ONNX | Home~
https://onnx.ai/

-Open Neural Network Exchange - Wikipedia~
https://ja.wikipedia.org/wiki/Open_Neural_Network_Exchange

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS