[従来] モデル・オプティマイザーの拡張¶
危険
ここで説明されているコードは非推奨になりました。従来のソリューションの適用を避けるため使用しないでください。下位互換性を確保するためにしばらく保持されますが、最新のアプリケーションでは使用してはなりません。
このガイドでは、非推奨である TensorFlow 変換方法について説明します。新しい推奨方法に関するガイドは、フロントエンド拡張に記載されています。
モデル・オプティマイザーの拡張機能を使用すると、モデル・オプティマイザーのコアコードを変更せずに、モデル変換パイプラインにロジックを挿入できます。モデル・オプティマイザー拡張機能には 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” と等しくないようにしてください。
注
モデル・オプティマイザー自体はこれらの拡張機能を使用して構築されているため、モデル・オプティマイザーのコードには膨大な拡張機能の使用例があります。