ONNX AIモデル
AI・機械学習ONNXは機械学習モデルの交換形式です。推論には入力名・形状・データ型、演算の版、実行環境の対応が必要です。重みが別ファイルの場合もあるため、ONNX本体だけで完結するとは限りません。
- 主な用途
- 機械学習モデルの計算グラフ・重みの交換
- 中身の種類
- バイナリデータ
目次・よくある質問・根拠資料を見る
内容の最終確認: · 編集:Kai
開き方・操作手順
使っている環境や目的の項目を開いて、手順を確認してください。
操作名・対応状況はアプリ・OS・版によって異なります。変更する前に原本を残してください。
開けないとき:症状から確認
- 入力の形が違う:名前、型、バッチ・画像の並び、前処理をモデルの説明と照合します。
- 演算が未対応:opsetや独自演算とランタイムの対応を確認します。
- 重みが見つからない:外部データのファイル名と本体からの相対位置を確認します。
- 入力shapeが違う:NCHW/NHWCやバッチ次元を確認し、数字だけを合わせて内容を並べ替えないまま渡さないようにします。
- GPU指定でも遅い:実際のプロバイダー選択や未対応演算のCPU処理をログで確認します。
- モデルを移動して失敗:外部重みも相対構造を保ってコピーします。
学習モデル → ONNX
- 元フレームワークの対応するエクスポート機能を使い、入力例と対象opsetを確認します。
- 元モデルとONNXの出力を同じ入力で比較し、精度・動的形状・必要な外部データを確認します。
- 書き出し前後で同じ入力を使い、出力の形状・値・処理時間を比較します。モデル定義と変換条件も保存します。
ONNXへ改名しても変換できません。全モデル・演算のエクスポートを保証する形式ではありません。
正しい入力を作るための確認
入力名、数値型、次元、軸の順番を一組の仕様として扱います。画像ならサイズだけでなく画素範囲や色順も確認します。
出力が数値で返るだけでは正しいとは限りません。ラベルの並びと後処理も合わせ、既知のケースで照合します。
この手順の根拠:ONNX Project · ONNX Concepts / ONNX Project · External Data / ONNX Runtime Project · Python API overview
単一ファイルと外部データの違い
ONNXは大きなテンソルを別ファイルへ置く場合があります。本体だけ渡すとグラフ情報はあっても重みが不足します。
受け渡し時にファイル一覧、実行環境、参照出力を付けます。変換先のopsetや追加演算が受け手のランタイムに対応するか確認します。
この手順の根拠:ONNX Project · ONNX Concepts / ONNX Project · External Data / ONNX Runtime Project · Python API overview
関連形式との違い
| 形式 | 主な役割 | 確認する点 |
|---|---|---|
| ONNX | グラフ・推論の交換 | 外部重みとopsetを確認 |
| PT | PyTorch保存物 | モデル定義や保存方式を確認 |
| ENGINE | TensorRTの最適化成果物 | GPU・版・ビルド条件に依存 |
取り扱いと安全性
モデルの提供元・ライセンス・必要メモリーを確認します。不明な独自演算ライブラリを読み込まず、更新済みの環境で扱います。
よくある質問
ONNXだけ送れば動く?
外部重みや前処理、対応環境が必要な場合があります。
opsetとは?
モデルが使う演算仕様の版です。実行環境の対応を確認します。
SAFETENSORSを改名すればONNX?
計算グラフ等の構造が違うため変換になりません。
動的な入力なら何サイズでも使える?
未指定の次元でも演算やエクスポート条件の制約があります。想定サイズを変えて確認します。
検証が通れば元モデルと同じ精度?
構造検証と推論精度は別です。前処理を揃えたテストで結果を比較します。
形式の基本情報:正式名称・MIME type・管理団体
- 名称
- Open Neural Network Exchange
- 管理・仕様
- ONNX project
- MIME type
- 作成元・配信元の指定による。拡張子だけでMIME typeは確定できません。
公式・一次情報
- プロジェクト公式ONNX Concepts
モデルのグラフ・演算・入力出力を説明しています。
ONNX Project · リンク確認: - プロジェクト公式External Data
ONNXが外部の重みファイルを参照する場合の扱いです。
ONNX Project · リンク確認: - 公式資料Python API overview
セッションの入力情報と実行プロバイダーを確認できます。
ONNX Runtime Project · リンク確認: