PINTO0309/onnx2tf

A tool for converting ONNX files to LiteRT/TFLite/TensorFlow, PyTorch native code (nn.Module), TorchScript (.pt), state_dict (.pt), Exported Program (.pt2), and Dynamo ONNX. It also supports direct conversion from LiteRT to PyTorch.

解決する課題

onnx2tf は、ONNX形式のAIモデルをさまざまな他のフレームワークに変換するために設計された変換ツールです。主に、ONNXファイルをLiteRT(旧TFLite)やTensorFlowに変換することで、モバイルやエッジデバイスへのモデル展開の問題を解決し、さらにネイティブなPyTorchコード、TorchScript、その他のPyTorch互換形式への変換経路も提供します。

動作の仕組み

このツールは、変換のための2つの主要な実行経路を提供します。

  1. flatbuffer_direct(デフォルト): レガシーなTensorFlow変換プロセスをバイパスする高速経路です。ONNXグラフの前処理とModelIRへの直接的な低レベル変換を実行し、その後FlatBuffer(TFLite)ファイルに直接エクスポートします。この経路は、レガシー経路よりも大幅に高速(最大100倍)になる可能性があります。
  2. tf_converter(レガシー): 標準のTensorFlow Lite Converterを使用する互換性経路です。

TFLiteに加えて、このツールはネイティブなPyTorch nn.Module パッケージ(state_dict ファイルやExported Programsを含む)を生成でき、PyTorch内でeager推論モードでモデルを実行できるようにします。

対象ユーザー

このツールは、異なるディープラーニングフレームワーク間でモデルを移植する必要があるMLエンジニアや開発者、特にONNXからTensorFlow/LiteRTやPyTorchへの変換を必要とし、特定のハードウェアアクセラレータや展開ターゲットとの互換性を確保したい人々を対象としています。

主な特徴

  • マルチフレームワーク対応: ONNXをLiteRT/TFLite、TensorFlow、ネイティブなPyTorchコードに変換します。
  • 高性能: flatbuffer_direct バックエンドは、従来の変換方法と比較して大幅な高速化を実現します。
  • 包括的なオペレーターサポート: tf_converter 経路向けに、膨大な数のONNXオペレーターをサポートします。
  • 精度検証: 変換されたモデルの出力を元のONNXモデルと比較するための精度レポートを生成できます。
  • 双方向変換: LiteRTからPyTorchへの直接変換をサポートします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト