Yolo 深圳
深セン
今すぐ参加
用語集

ONNX (オープン・ニューラル・ネットワーク・エクスチェンジ)

ONNX どのようにAIモデルの移植性と相互運用性を強化し、多様なプラットフォームでUltralytics YOLO モデルのシームレスな展開を可能にしているかをご覧ください。

Open Neural Network ExchangeONNX)は、機械学習(ML)モデルを次のような方法で表現するために設計されたオープンソースの標準です。 機械学習(ML)モデルを表現するために設計されたオープンソースの標準です。 異なるフレームワークやハードウェア間での移植性を保証する方法で、機械学習(ML)モデルを表現するために設計されたオープンソースの標準です。もともとはMicrosoft フェイスMicrosoft 企業によって開発された。 ONNX 、AIの「ユニバーサル・トランスレーター」としての役割を果たしている。これにより開発者は、次のような1つのエコシステムでモデルを訓練することができる。 エコシステム PyTorchのような別のエコシステムでシームレスに展開することができる。 別のエコシステム TensorFlowや特殊な のような別の推論エンジンにシームレスに導入できる。この相互運用性により 研究環境から本番アプリケーションに移行する際に、ネットワークを再構築したり再トレーニングしたりする必要がなくなる、 大幅な合理化 モデル展開パイプラインを大幅に合理化します。

ONNX 仕組み

ONNX 、その中核として、ディープラーニング(DL)と機械学習モデルの構成要素である演算子の共通セットを定義している。 ディープラーニング(DL)および機械学習モデルの構成要素である。 標準ファイル形式を定義している。モデルがONNX変換されると、その計算構造は静的な計算グラフにマッピングされる。 計算グラフにマッピングされる。このグラフでは、ノードは数学的演算(畳み込みや活性化など)を表す。 このグラフでは、ノードは(畳み込みや活性化関数のような)数学的演算を表し、エッジはそれらの間のデータテンソルのフローを表す。

このグラフ表現は標準化されているため、ハードウェア・メーカーはONNXに最適化された実行プロバイダーを構築することができる。 ONNX最適化された実行プロバイダーを構築することができる。つまり、単一の .onnx ファイルを含む多様なハードウェアで加速することができる。 CPU, GPU (グラフィックス・プロセッシング・ユニット)または 専門的 TPU Tensor 処理ユニット)多くの場合 高性能の ONNX ランタイム.

モデルをONNXエクスポートする

をご利用のお客様へ ultralytics パッケージを使えば、学習済みモデルをONNX 形式に変換するのは簡単だ。 プロセスである。このライブラリは、ONNX 標準への複雑なレイヤーのマッピングを自動的に処理する。以下のコード をエクスポートする方法を示します。 YOLO11 モデル より広範な展開のための準備である。

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")

実際のアプリケーション

ONNX 柔軟性は、特にコンピュータ・ビジョン(CV)タスクにおいて、最新のAIインフラストラクチャの重要な構成要素となっている。 コンピュータ・ビジョン(CV)タスクには特に重要なコンポーネントです。

  1. クロスプラットフォームのモバイル展開:開発者は 開発者は、PyTorch 使った物体検出モデルのトレーニングを を使ってオブジェクト検出モデルを学習する。しかし、最終的なアプリケーションはiOS Android デバイスの両方で動作する必要があります。モデルを モデルをONNXエクスポートすることで、開発者は同じモデルファイルをモバイルアプリケーションに統合できます。 ONNX Runtime for Mobileを使用して、同じモデルファイルをモバイルアプリケーションに統合することができます。 コードベースを別々に維持することなく、異なるオペレーティングシステム間で一貫した動作を保証します。
  2. レガシーシステムとの統合:多くの産業用アプリケーションは、性能と安定性のためにC++やC#のような言語を使用して構築されている。 のような言語を使って構築されています。Python トレーニングの標準ですが、PythonモデルをC++の実稼働環境に統合するのは時間がかかり、エラーが発生しやすくなります。 C++の生産環境に統合するのは、時間がかかり、エラーが発生しやすい。ONNX このギャップを埋めます。を使用する製造施設 ロボット工学におけるコンピュータビジョン Python学習したモデルをONNXエクスポートし、C++制御ソフトウェアに直接ロードすることができます。 工場での高速リアルタイム推論 工場での高速リアルタイム推論が可能になる。

ONNX 関連概念との比較

ONNX 他のツールとどのように相互作用するかを理解することは、適切な導入戦略を選択するのに役立ちます。

  • ONNX TensorRT比較: ONNX モデルを表現するためのファイルフォーマットである、 TensorRTは、NVIDIAがNVIDIA GPU専用に開発した高性能最適化SDK NVIDIA NVIDIA GPU専用に開発した高性能最適化SDKです。開発者は、モデルをONNX にエクスポートし、次に TensorRT を使用してモデルを最適化します。 開発者は、モデルをONNXにエクスポートし、TensorRT 使用してONNX ファイルをインジェストし、積極的なモデルの最適化を適用します。 モデル最適化 開発者はモデルをONNXにエクスポートし、TensorRTを使用してそのONNXファイルを取り込み、NVIDIA ハードウェア上で最高速度を実現するために、レイヤフュージョンやキャリブレーションなどの積極的なモデル最適化技術を適用します。
  • ONNX フレームワーク形式(.pt、.h5など)の比較: PyTorchようなネイティブフォーマット .pt または Kerasの .h5 トレーニングや保存に最適 モデルの重み を特定のエコシステム内で使用することができる。 しかし、多くの場合、モデルを実行するためには、オリジナルのフレームワークをインストールする必要がある。ONNX モデルを モデルをトレーニングフレームワークから切り離すことで エッジAI 完全なトレーニング・ライブラリをインストールすることが ストレージやメモリの制約により、完全なトレーニングライブラリをインストールすることが現実的でない場合。
  • ONNX 量子化: ONNX フォーマットである。 モデルの量子化とは、精度を下げることで モデル量子化とは、モデルサイズを縮小し、精度を下げることで速度を向上させる技術である(例えば、float32からint8へ)。ONNX 標準は ONNX標準は量子化された演算子をサポートしており、開発者は量子化されたモデル 量子化されたモデル を効率的に実行することができます。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加