【おにきす】
ONNX(オニキス) とは?
最終更新:
💡 モデルの計算を、共通の形で受け渡す
機械学習モデルの計算やデータを共通の形で表すためのオープンな仕様。対応する学習環境からモデルを出力し、ONNX Runtimeなどの実行環境で利用する。
📌 このページのポイント
- Open Neural Network Exchangeの略
- 計算のつながりや、演算・重みなどを表す仕様
- ONNXという形式と、ONNX Runtimeという実行環境は別
- 変換・演算の版・実行環境の対応と結果を確認する
モデルを保存する形式なの?
共通の仕様で計算のつながりを表し、保存・受け渡しできるようにするものだよ。計算を行うノードや入力・出力、重みなどを扱う。学習した環境と本番で動かす環境を分ける用途があるんだ。
ONNX Runtimeとは、どう違う?
PyTorchのモデルなら、全部変換できる?
変換ツールが使える演算やモデルの作りによるよ。ONNXには演算の仕様とその版を表すopsetがあり、実行環境の対応も確認する。未対応の演算や独自の演算は、追加の対応が必要になることがあるんだ。
変換すれば、必ず速くなる?
まとめ:ざっくりこれだけ覚えればOK!
「ONNX」って出てきたら「機械学習モデルの計算を共通の形で受け渡す仕様」と思えばだいたいOK!
📖 おまけ:英語の意味
「Open Neural Network Exchange」 = 機械学習モデルを共通の形で扱うための名前
💬 ONNXはモデルの表し方を定めるよ。そのモデルを実際に動かすソフトウェアは、ONNX Runtimeなどの実行環境なんだ。