Main Content

Predict

学習済み深層学習ニューラル ネットワークを使用した応答の予測

R2020b 以降

  • Predict block

ライブラリ:
Deep Learning Toolbox / Deep Neural Networks

説明

Predict ブロックは、ブロック パラメーターで指定された学習済みネットワークを使用して、入力におけるデータの応答を予測します。このブロックを使用すると、MAT ファイルまたは MATLAB® 関数から Simulink® モデルに事前学習済みのネットワークを読み込ませることができます。

メモ

Predict ブロックを使用して Simulink で予測を行います。MATLAB コードを使用してプログラムで予測を行うには、関数 minibatchpredict または predict を使用します。

端子

入力

すべて展開する

Predict ブロックの入力端子は、読み込まれたネットワークの入力層の名前を取ります。たとえば、MATLAB function 用の imagePretrainedNetwork を指定した場合、Predict ブロックの入力端子には data というラベルが付けられます。予測ブロックへの入力には、読み込まれたネットワークに応じて、イメージ、シーケンス、または時系列データを使用できます。

入力のレイアウトは、データのタイプによって異なります。

データ予測子のレイアウト
2 次元イメージh x w x c x N の数値配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。
ベクトル シーケンスs 行 c 列の行列。ここで、s はシーケンス長、c はシーケンスの特徴の数です。
2 次元イメージ シーケンスh x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。
特徴N 行 numFeatures 列の数値配列。ここで、N は観測値の数、numFeatures は入力データの特徴の数です。

配列に NaN が含まれる場合、ネットワーク全体に伝播されます。

出力

すべて展開する

Predict ブロックの出力端子は、読み込まれたネットワークの出力層の名前を取ります。たとえば、MATLAB function 用の imagePretrainedNetwork を指定した場合、Predict ブロックの出力端子には prob_flatten というラベルが付けられます。Predict の出力は、読み込まれたネットワークに応じて、予測スコアまたは応答を表すことができます。

予測スコアまたは予測応答は、K 行 N 列の配列として返されます。ここで、K はクラスの数、N は観測値の数です。

ネットワーク層の Activations を有効にした場合、Predict ブロックは、選択したネットワーク層の名前をもつ新しい出力端子を作成します。この端子は、選択したネットワーク層からのアクティベーションを出力します。

ネットワーク層からのアクティベーションは、数値配列として返されます。出力の形式は、入力データのタイプおよび層出力のタイプによって異なります。

2 次元イメージ出力の場合、アクティベーションは h×w×c×n の配列になります。ここで、h、w、および c はそれぞれ選択した層の出力の高さ、幅、およびチャネル数、n はイメージの数です。

ベクトル データを含む単一のタイムステップの場合、アクティベーションは c 行 n 列の行列になります。ここで、c はシーケンスの特徴の数、n はシーケンスの数です。

ベクトル データを含む複数のタイムステップの場合、アクティベーションは c×n×s の行列になります。ここで、c はシーケンスの特徴の数、n はシーケンスの数、s はシーケンス長です。

2 次元イメージ データを含む単一のタイム ステップの場合、アクティベーションは h×w×c×n の配列になります。ここで、n はシーケンスの数、h、w、および c はそれぞれイメージの高さ、幅、およびチャネル数です。

パラメーター

すべて展開する

学習済みネットワークの変換元を指定します。次のいずれかを選択します。

  • MAT ファイルからのネットワークdlnetwork オブジェクトを含む MAT ファイルから学習済みネットワークをインポートします。

  • Network from MATLAB function— MATLAB 関数から事前学習済みのネットワークをインポートします。たとえば、事前学習済みの GoogLeNet を使用するには、MATLAB の M ファイルに関数 pretrainedGoogLeNet を作成し、この関数をインポートします。

    function net = pretrainedGoogLeNet
      net = imagePretrainedNetwork("googlenet");
    end

プログラムでの使用

ブロック パラメーター: Network
タイプ: 文字ベクトル、string
値: 'Network from MAT-file' | 'Network from MATLAB function'
既定: 'Network from MAT-file'

このパラメーターは、読み込もうとしている学習済み深層学習ネットワークを含む MAT ファイルの名前を指定します。ファイルが MATLAB のパス上にない場合は、[参照] ボタンを使用してファイルを探します。

依存関係

このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク] に設定します。

プログラムでの使用

ブロック パラメーター: NetworkFilePath
タイプ: 文字ベクトル、string
値: MAT ファイルのパスまたは名前
既定: 'untitled.mat'

このパラメーターは、事前学習済みの深層学習ネットワークに関する MATLAB 関数の名前を指定します。たとえば、事前学習済みの GoogLeNet を使用するには、MATLAB の M ファイルに関数 pretrainedGoogLeNet を作成し、この関数をインポートします。

function net = pretrainedGoogLeNet
  net = imagePretrainedNetwork("googlenet");
end

依存関係

このパラメーターを有効にするには、[ネットワーク] パラメーターを [MATLAB 関数からのネットワーク] に設定します。

プログラムでの使用

ブロック パラメーター: NetworkFunction
タイプ: 文字ベクトル、string
値: MATLAB 関数名
既定: 'squeezenet'

予測に使用するミニバッチのサイズ。正の整数として指定します。ミニバッチのサイズが大きくなるとより多くのメモリが必要になりますが、予測時間が短縮される可能性があります。

プログラムでの使用

ブロック パラメーター: MiniBatchSize
タイプ: 文字ベクトル、string
値: 正の整数
既定: '128'

予測スコアまたは応答を返す出力端子を有効にします。

プログラムでの使用

ブロック パラメーター: Predictions
タイプ: 文字ベクトル、string
値: 'off' | 'on'
既定値: 'on'

このパラメーターは、学習済みの dlnetwork に必要な入力データ形式を指定します。

データ形式。string スカラーまたは文字ベクトルとして指定します。文字列の各文字は、次のいずれかの次元ラベルでなければなりません。

  • "S" — 空間

  • "C" — チャネル

  • "B" — バッチ

  • "T" — 時間

  • "U" — 指定なし

たとえば、シーケンスのバッチを含み、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列の場合、"CBT" の形式で指定できます。

"S" または "U" のラベルが付いた次元については、複数回指定できます。"C""B""T" のラベルについては、1 回のみ使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U" 次元を無視します。

詳細については、Deep Learning Data Formatsを参照してください。

既定では、このパラメーターはネットワークが必要とするデータ形式を使用します。

依存関係

このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク] に設定して、学習済みの dlnetwork オブジェクトを MAT ファイルからインポートします。

プログラムでの使用

ブロック パラメーター: InputDataFormats
タイプ: 文字ベクトル、string
値: 1 つ以上の入力をもつネットワークの場合は、"{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}" の形式でテキストを指定します。入力層がなく複数の入力端子をもつネットワークの場合は、"{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}" の形式でテキストを指定します。
既定値: ネットワークが必要とするデータ形式。詳細については、Deep Learning Data Formatsを参照してください。

[アクティベーション] リストを使用して、特徴を抽出する層を選択します。選択した層は、Predict ブロックの出力端子として現れます。

プログラムでの使用

ブロック パラメーター: Activations
タイプ: 文字ベクトル、string
値: '{'layerName1',layerName2',...}' の形式の文字ベクトル
既定値: ''

ヒント

  • Intel® MKL-DNN ライブラリを活用してコードを生成することで、シミュレーションを高速化できます。詳細については、Acceleration for Simulink Deep Learning Modelsを参照してください。

拡張機能

バージョン履歴

R2020b で導入

すべて展開する