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.

What it solves

onnx2tf は、AI モデルを ONNX 形式から他のさまざまなフレームワークへ移行するための変換ツールです。主に LiteRT(旧 TensorFlow Lite)、TensorFlow、PyTorch を対象としています。これらのエコシステム間でモデルを書き直す手間を省き、広範な演算子をサポートして高い互換性を実現します。

How it works

ツールは変換のために 2 つの主要な実行パスを提供します。

  1. flatbuffer_direct (Default): ノード単位の TensorFlow 変換をバイパスする高速パスです。ONNX グラフの前処理を行い、内部 ModelIR へ直接低レベル化し、FlatBuffer(TFLite)形式へ直接エクスポートします。このパスは従来のパスに比べて 100 倍以上高速になることがあります。
  2. tf_converter (Legacy): 標準の TensorFlow Lite Converter を使用する互換性パスです。

TFLite 以外にも、ツールはネイティブ PyTorch nn.Module パッケージ、TorchScript、Exported Programs(.pt2)や、TensorFlow SavedModel、Keras ファイルを生成できます。また、LiteRT から直接 PyTorch へ変換することもサポートしています。

Who it’s for

エッジデバイス(LiteRT/TFLite 経由)へのモデルデプロイや、PyTorch と TensorFlow/ONNX エコシステム間で機能精度を損なわずにモデルを移行したい ML エンジニアや開発者向けです。

Highlights

  • Multi-Framework Support: ONNX を LiteRT、TensorFlow、ネイティブ PyTorch コードに変換します。
  • High Performance: flatbuffer_direct バックエンドは従来手法に比べて大幅に高速な変換を実現します。
  • Extensive Op Coverage: Attention、GRU、LSTM などの複雑レイヤを含む、豊富な ONNX 演算子をサポートします。
  • Accuracy Validation: 入力モデル(例:ONNX)と変換後の出力(例:TFLite または PyTorch)を比較する精度レポートを生成する組み込みツールを提供します。
  • PyTorch Native Export: 標準の torch.nn.Module を出力し、互換性のある state_dict.pth を伴って即時推論が可能です。