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 つの主要な実行パスを提供します。
flatbuffer_direct(Default): ノード単位の TensorFlow 変換をバイパスする高速パスです。ONNX グラフの前処理を行い、内部 ModelIR へ直接低レベル化し、FlatBuffer(TFLite)形式へ直接エクスポートします。このパスは従来のパスに比べて 100 倍以上高速になることがあります。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を伴って即時推論が可能です。