Talmaj/onnx2pytorch

Transform ONNX model to PyTorch representation

何を解決するか

ONNX形式のニューラルネットワークモデルをPyTorchに変換できるようにします。これにより、開発者は元々ONNXにエクスポートされたモデルに対して、PyTorchのバックエンドとその豊富なニューラルネットワーク操作機能を活用できます。

動作方法

このライブラリは、読み込まれたONNXモデルを入力として受け取り、それをPyTorchモデルに変換する ConvertModel クラスを提供します。ONNX演算子をそのPyTorch同等物にマッピングし、PyTorchで表現できない演算子や属性はエラーを発生させるように設計されています。これにより、誤った結果が生成されるのを防ぎます。

対象ユーザー

ONNX形式のモデルを持ち、それらを推論やさらなる操作のためにPyTorchエコシステムに移行したい開発者や研究者です。

特徴

  • 広範なモデル対応: MobileNet、ResNet、BERT-Squad、YOLOv4など、さまざまなアーキテクチャを正常に変換できます。
  • 差分テスト: onnxruntime とONNXの ReferenceEvaluator を用いて、異なるスキーマリビジョンで演算子をテストしています。
  • デバッグモード: PyTorch版と元のONNXランタイムの活性化値を比較するためのデバッグフラグを備え、差異を特定できます。
  • 推論対応: バッチサイズが1より大きい場合も対応しており、BatchNormレイヤーでは推論モードを使用します。

関連

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