importNetworkFromTensorFlow
構文
説明
は、SavedModel 形式のネットワークが格納されているフォルダー net
= importNetworkFromTensorFlow(modelFolder
)modelFolder
から事前学習済みの TensorFlow™ ネットワークをインポートします。ネットワークは、.pb
の拡張子をもつ saved_model
ファイルで定義された層と、variables
サブフォルダー内の学習済みの重みで構成されます。この関数は、ネットワーク net
を初期化された dlnetwork
オブジェクトとして返します。
importNetworkFromTensorFlow
を使用するには、Deep Learning Toolbox™ Converter for TensorFlow Models サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、importNetworkFromTensorFlow
によってダウンロード用リンクが表示されます。
メモ
importNetworkFromTensorFlow
関数は、TensorFlow 層をインポートするときにカスタム層を生成できます。詳細については、アルゴリズムを参照してください。関数は、生成されたカスタム層を +
modelFolder
名前空間に保存します。
は、1 つ以上の名前と値の引数を使用して追加のオプションを指定します。たとえば、生成されたカスタム層と関連する関数を保存する名前空間を指定できます。net
= importNetworkFromTensorFlow(modelFolder
,Name=Value
)
例
入力引数
名前と値の引数
出力引数
制限
importNetworkFromTensorFlow
は、TensorFlow バージョン 2.0 ~ 2.15 までテストされています。importNetworkFromTensorFlow
は、Keras 2 API で作成されたモデルをサポートします。Keras 3 API で導入された新機能はサポートしていません。
詳細
ヒント
事前学習済みのネットワークを新しいイメージの予測または転移学習に使用するには、インポートしたモデルの学習に使用したイメージと同じようにイメージを前処理しなければなりません。最も一般的な前処理ステップは、イメージのサイズ変更、イメージの平均値の減算、イメージの BGR 形式から RGB 形式への変換です。
学習および予測用のイメージの前処理の詳細については、イメージの深層学習向け前処理を参照してください。
+
名前空間の親フォルダーが MATLAB パス上にない場合、この名前空間のメンバー (カスタム層および TensorFlow 演算子) にアクセスすることはできません。詳細については、名前空間と MATLAB パスを参照してください。Namespace
MATLAB は 1 ベースのインデックスを使用しますが、Python® は 0 ベースのインデックスを使用します。つまり、配列の最初の要素のインデックスは、MATLAB と Python でそれぞれ 1 と 0 になります。MATLAB のインデックスの詳細については、配列インデックス付けを参照してください。MATLAB で、Python で作成されたインデックス (
ind
) の配列を使用するには、配列をind+1
に変換します。その他のヒントについては、Tips on Importing Models from TensorFlow, PyTorch, and ONNXを参照してください。
アルゴリズム
importNetworkFromTensorFlow
関数は、次の手順を順番に試して、TensorFlow 層を MATLAB にインポートします。
関数は、TensorFlow 層を組み込みの MATLAB 層としてインポートすることを試みます。詳細については、組み込みの MATLAB 層への変換がサポートされている TensorFlow-Keras 層を参照してください。
関数は、TensorFlow 層を組み込みの MATLAB 関数としてインポートすることを試みます。詳細については、サポートされている TensorFlow 演算子を参照してください。
関数は、TensorFlow 層をカスタム層としてインポートすることを試みます。
importNetworkFromTensorFlow
は、生成されたカスタム層および関連する関数を+
名前空間に保存します。例については、自動生成されたカスタム層をもつ TensorFlow ネットワークのインポートを参照してください。Namespace
この関数は、プレースホルダー関数を含むカスタム層として TensorFlow 層をインポートします。
importNetworkFromTensorFlow
は、プレースホルダー関数を+
名前空間のNamespace
+ops
内部名前空間に保存します。プレースホルダー関数は、ネットワークを使用する前に補完しなければなりません。
場合によっては、インポートしたネットワークを初期化する必要があることがソフトウェアによって示されます。例については、TensorFlow ネットワークのインポートと初期化を参照してください。
代替機能
アプリ
ディープ ネットワーク デザイナーアプリを使用して、外部プラットフォームからネットワークをインポートすることもできます。アプリは importNetworkFromTensorFlow
関数を使用してネットワークをインポートし、進行状況ダイアログ ボックスを表示します。インポート プロセス中に、アプリはネットワークに入力層を追加し (可能な場合)、注意が必要な問題の詳細を含むインポート レポートを表示します。ネットワークをインポートした後、ネットワークを対話的に編集、可視化、および解析できます。ネットワークの編集が完了したら、それを Simulink® にエクスポートするか、ネットワークを構築するための MATLAB コードを生成できます。
ブロック
TensorFlow Model Predict ブロックを使用して TensorFlow ネットワークを扱うこともできます。TensorFlow Model Predict ブロックを使用すると、TensorFlow 関数を読み込んでデータを前処理および後処理したり、入力端子と出力端子を対話的に構成したりすることもできます。
参照
[1] TensorFlow. “TensorFlow.” Accessed July 3, 2023. https://www.tensorflow.org/.
[2] TensorFlow. “Using the SavedModel Format | TensorFlow Core.” Accessed July 3, 2023. https://www.tensorflow.org/guide/saved_model.