高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

onnx2tf で高速なTFLiteモデルに変換🏃

onnx2tf です。
onnx-tensorflowじゃないです👻

PINTOさんが開発されているツールで、
ONNXファイルをTensorFlow/TensorFlow-Lite形式に変換するツールです。
どうもonnx-tensorflowで変換をかけると、
無駄に大量のTransposeが挿入される(何か機械的な変換で冗長なことしてる?)ようで、
それらの解決を目的の一つとして開発されているようです。

そして、onnx2tfPINTOさんの最適化の知見が
盛り込まれたツールで、onnx-tensorflowで変換したモデルよりも、
20~30%近く高速なモデルが出来上がります。
※当然、モデルの構造にもよりますが🦔

以下はYOLOX-NanoをTensorFlow-Liteに変換したもので、
onnx-tensorflowを利用した場合だと推論時間383ms、
onnx2tf を利用した場合だと推論時間258ms(約67%)とかなり高速化されています。

以下は別のモデルで、変換前の動画は添付していませんが、およそ20%ほど早くなっています。

github.com