[従来] モデル・オプティマイザー拡張#

危険

ここで説明されているコードは非推奨になりました。従来のソリューションの適用を避けるため使用しないでください。下位互換性を確保するためにしばらく保持されますが、最新のアプリケーションでは使用してはなりません

このガイドでは、非推奨である TensorFlow 変換方法について説明します。新しい推奨方法に関するガイドは、フロントエンド拡張に記載されています。

モデル・オプティマイザーの拡張機能を使用すると、モデル・オプティマイザーのコアコードを変更せずに、モデル変換パイプラインにロジックを挿入できます。モデル・オプティマイザー拡張機能には 3 つのタイプがあります:

  1. モデル・オプティマイザー操作

  2. フレームワーク操作エクストラクター

  3. モデル変換。モデル変換のフロントフェーズ、ミドルフェーズ、またはバックフェーズで実行できます。

拡張機能は、Python コードを含むプレーン・テキスト・ファイルです。ファイルには、拡張基本クラスの 1 つから継承されたクラス (複数可) が含まれている必要があります。拡張ファイルは、次の構造のディレクトリーに保存する必要があります:

./<MY_EXT>/ 
          ops/                             - custom operations 
          front/                           - framework independent front transformations 
                 <FRAMEWORK_1>/            - front transformations for <FRAMEWORK_1> models only and extractors for <FRAMEWORK_1> operations 
                 <FRAMEWORK_2>/            - front transformations for <FRAMEWORK_2> models only and extractors for <FRAMEWORK_2> operations 
               ... 
          Middle/                          - middle transformations 
          back/                            - back transformations

モデル・オプティマイザーは、内部で同じレイアウトを使用して、組み込みの拡張機能を保持します。唯一の例外は、mo/ops/ ディレクトリーがモデル・オプティマイザー操作のソースとしても使用されることです。

拡張子を含むルート・ディレクトリーの名前は、組み込みの Model Optimizer 拡張機能と名前が競合するため、 “extensions” と等しくないようにしてください。

モデル・オプティマイザー自体はこれらの拡張機能を使用して構築されているため、モデル・オプティマイザーのコードには膨大な拡張機能の使用例があります。

関連情報#