「[[.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