このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
minibatchpredict
構文
説明
[
は、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、Y1,...,YM
] = minibatchpredict(___,Name=Value
)MiniBatchSize=32
は、サイズ 32 のミニバッチをループ処理して予測を行います。
例
この例では、ミニバッチをループ処理することにより、dlnetwork
オブジェクトを使用して予測を行う方法を示します。
データ セットが大きい場合、またはメモリが限られたハードウェアで予測を行う場合、関数 minibatchpredict
を使用し、データのミニバッチをループ処理して予測を行います。
dlnetwork
オブジェクトの読み込み
学習済みの dlnetwork
オブジェクトおよび対応するクラス名をワークスペースに読み込みます。このニューラル ネットワークには 1 つの入力と 2 つの出力があります。手書きの数字のイメージを入力として受け取り、数字のラベルと回転角度を予測します。
load dlnetDigits
予測用データの読み込み
予測用の数字テスト データを読み込みます。
load DigitsDataTest
クラス名を表示します。
classNames
classNames = 10×1 cell
{'0'}
{'1'}
{'2'}
{'3'}
{'4'}
{'5'}
{'6'}
{'7'}
{'8'}
{'9'}
いくつかのイメージと、それに対応するラベルと回転角度を表示します。
numObservations = size(XTest,4); numPlots = 9; idx = randperm(numObservations,numPlots); figure for i = 1:numPlots nexttile(i) I = XTest(:,:,:,idx(i)); label = labelsTest(idx(i)); imshow(I) title("Label: " + string(label) + newline + "Angle: " + anglesTest(idx(i))) end
予測の実行
minibatchpredict
関数を使用して予測を行い、scores2label
関数を使用して分類スコアをラベルに変換します。既定では、関数 minibatchpredict
は利用可能な GPU がある場合にそれを使用します。GPU を使用するには、Parallel Computing Toolbox™ ライセンスとサポートされている GPU デバイスが必要です。サポートされているデバイスの詳細については、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。そうでない場合、関数は CPU を使用します。実行環境を手動で選択するには、minibatchpredict
関数の ExecutionEnvironment
引数を使用します。
[scoresTest,Y2Test] = minibatchpredict(net,XTest); Y1Test = scores2label(scoresTest,classNames);
予測の一部を可視化します。
idx = randperm(numObservations,numPlots); figure for i = 1:numPlots nexttile(i) I = XTest(:,:,:,idx(i)); label = Y1Test(idx(i)); imshow(I) title("Label: " + string(label) + newline + "Angle: " + Y2Test(idx(i))) end
入力引数
ニューラル ネットワーク。dlnetwork
オブジェクトとして指定します。
イメージ データ。数値配列、categorical 配列、dlarray
オブジェクト、データストア、または minibatchqueue
オブジェクトとして指定します。
ヒント
ビデオ データなどのイメージのシーケンスの場合、代わりに sequences
入力引数を使用します。
メモリに収まり、追加の処理を必要としないデータがある場合、入力データを数値配列として指定するのが通常最も簡単なオプションです。システムに保存されているイメージ ファイルを使用して予測を行う場合、または追加の処理を適用する場合、データストアが通常最も簡単なオプションです。
ヒント
ニューラル ネットワークには、特定のレイアウトをもつ入力データが必要です。たとえば、イメージ分類ネットワークは通常、h×w×c の数値配列のイメージ表現を必要とします。ここで、h、w、c はそれぞれイメージの高さ、幅、チャネル数です。ニューラル ネットワークの入力層では、通常、必要とされるデータ レイアウトが指定されています。
ほとんどのデータストアと関数は、ネットワークで必要とされるレイアウトでデータを返します。データのレイアウトが異なる場合、名前と値の引数 InputDataFormats
を使用するか、形式を整えた dlarray
オブジェクトとして入力データを指定することによって、レイアウトを指定します。通常、名前と値の引数 InputDataFormats
を指定する方が、入力データのレイアウトを手動で調整するよりも簡単です。
入力層をもたないニューラル ネットワークの場合、名前と値の引数 InputDataFormats
または形式を整えた dlarray
オブジェクトを使用しなければなりません。
詳細については、深層学習のデータ形式を参照してください。
数値配列または dlarray
オブジェクト
メモリに収まり、追加の処理を必要としないデータの場合、イメージのデータ セットを数値配列または dlarray
オブジェクトとして指定できます。
数値配列と形式を整えていない dlarray
オブジェクトのレイアウトは、イメージ データの種類によって異なり、InputDataFormats
引数と一致していなければなりません。
ほとんどのネットワークでは、次のレイアウトのイメージ データが必要です。
データ | レイアウト |
---|---|
2 次元イメージ | h×w×c×N の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。 このレイアウトのデータは、 |
3 次元イメージ | h×w×d×c×N の配列。ここで、h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数です。N はイメージの数です。 このレイアウトのデータは、 |
異なるレイアウトのデータの場合は、InputDataFormats
引数を使用してデータのレイアウトが異なることを示すか、形式を整えた dlarray
オブジェクトを代わりに使用します。詳細については、深層学習のデータ形式を参照してください。
categorical 配列 (R2025a 以降)
メモリに収まり、追加の処理を必要としない categorical 値のイメージ (ラベル付きピクセル マップなど) の場合は、イメージを categorical 配列として指定できます。
ソフトウェアは categorical 入力を自動的に数値に変換し、ニューラル ネットワークに渡します。ソフトウェアが categorical 入力を数値に変換する方法を指定するには、CategoricalInputEncoding
引数を使用します。categorical 配列のレイアウトはイメージ データの種類によって異なり、InputDataFormats
と一致していなければなりません。
次の表のレイアウトにおいて、ほとんどのネットワークでは、minibatchpredict
関数に categorical イメージ データを渡す必要があります。
データ | レイアウト |
---|---|
2 次元 categorical イメージ | h×w×1×N の配列。ここで、h と w は、それぞれイメージの高さと幅で、N はイメージの数です。 ソフトウェアがこのデータを数値配列に変換すると、このレイアウトのデータ形式は |
3 次元 categorical イメージ | h×w×d×1×N の配列。ここで、h、w、d は、それぞれイメージの高さ、幅、深さで、N はイメージの数です。 このレイアウトのデータは、 |
異なるレイアウトのデータの場合は、InputDataFormats
引数を使用してデータのレイアウトが異なることを示すか、形式を整えた dlarray
オブジェクトを代わりに使用します。詳細については、深層学習のデータ形式を参照してください。
データストア
データストアはイメージのバッチを読み取ります。データストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
イメージ データの場合、minibatchpredict
関数は次のデータストアをサポートします。
データストア | 説明 | 使用例 |
---|---|---|
ImageDatastore | ディスクに保存されたイメージのデータストア。 | イメージのサイズが同じ場合に、システムに保存されているイメージを使用して予測を行います。イメージのサイズが異なる場合は |
augmentedImageDatastore | サイズ変更を含むランダムなアフィン幾何学的変換を適用するデータストア。 | イメージのサイズが異なる場合に、ディスクに保存されているイメージを使用して予測を行います。 拡張イメージ データストアを使用して予測を行う場合は、回転、反転、せん断、平行移動などの追加の拡張を適用しないでください。 |
TransformedDatastore | カスタム変換関数を使用して、基になるデータストアから読み取ったデータのバッチを変換するデータストア。 |
|
CombinedDatastore | 2 つ以上の基になるデータストアからデータを読み取るデータストア。 | 複数の入力をもつネットワークを使用して予測を行います。 |
カスタム ミニバッチ データストア | データのミニバッチを返すカスタム データストア。 | 他のデータストアでサポートされていないレイアウトのデータを使用して予測を行います。 詳細は、カスタム ミニバッチ データストアの開発を参照してください。 |
ヒント
ImageDatastore
オブジェクトを使用すると、事前取得を使用して JPG または PNG イメージ ファイルのバッチ読み取りを行うことができます。イメージのサイズ変更を含む深層学習用のイメージの前処理を効率的に行うには、augmentedImageDatastore
オブジェクトを使用します。ImageDatastore
オブジェクトの ReadFcn
プロパティを使用しないでください。ReadFcn
プロパティをカスタム関数に設定した場合、ImageDatastore
オブジェクトはイメージ ファイルを事前取得しないため、通常、速度が大幅に低下します。
transform
関数と combine
関数を使用することで、他の組み込みのデータストアを使用して深層学習ニューラル ネットワークをテストできます。これらの関数は、データストアから読み取られたデータを minibatchpredict
関数に必要なレイアウトに変換できます。データストア出力に必要なレイアウトは、ニューラル ネットワーク アーキテクチャによって異なります。詳細については、データストアのカスタマイズを参照してください。
minibatchqueue
オブジェクト
ソフトウェアがミニバッチを処理および変換する方法をより細かく制御するには、データを minibatchqueue
オブジェクトとして指定できます。これを実行すると、minibatchpredict
関数はオブジェクトの MiniBatchSize
プロパティを無視し、代わりに名前と値の引数 MiniBatchSize
を使用します。minibatchqueue
入力の場合、PreprocessingEnvironment
プロパティは "serial"
でなければなりません。
メモ
この引数は複素数値の予測子をサポートします。
シーケンス データまたは時系列データ。数値配列、categorical 配列、dlarray
オブジェクト、cell 配列、データストア、または minibatchqueue
オブジェクトとして指定します。
メモリに収まり、追加の処理を必要としない同じ長さのシーケンスがある場合、入力データを数値配列として指定するのが通常最も簡単なオプションです。メモリに収まり、追加の処理を必要としないさまざまな長さのシーケンスがある場合、入力データを数値配列の cell 配列として指定するのが通常最も簡単なオプションです。システムに保存されているシーケンスを使用して学習させる場合、またはカスタム変換などの追加処理を適用する場合、データストアが通常最も簡単なオプションです。
ヒント
ニューラル ネットワークには、特定のレイアウトをもつ入力データが必要です。たとえば、ベクトルシーケンス分類ネットワークは通常、t 行 c 列の配列として表されたベクトルシーケンスを必要とします。ここで、t と c は、それぞれタイム ステップの数とシーケンスのチャネル数です。ニューラル ネットワークの入力層では、通常、必要とされるデータ レイアウトが指定されています。
ほとんどのデータストアと関数は、ネットワークで必要とされるレイアウトでデータを返します。データのレイアウトが異なる場合、名前と値の引数 InputDataFormats
を使用するか、形式を整えた dlarray
オブジェクトとして入力データを指定することによって、レイアウトを指定します。通常、名前と値の引数 InputDataFormats
を指定する方が、入力データのレイアウトを手動で調整するよりも簡単です。
入力層をもたないニューラル ネットワークの場合、名前と値の引数 InputDataFormats
または形式を整えた dlarray
オブジェクトを使用しなければなりません。
詳細については、深層学習のデータ形式を参照してください。
数値配列、categorical 配列、dlarray
オブジェクト、または cell 配列
メモリに収まり、カスタム変換などの追加処理を必要としないデータの場合、単一のシーケンスを数値配列、categorical 配列、または dlarray
オブジェクトとして指定するか、シーケンスのデータ セットを数値配列、categorical 配列、または dlarray
オブジェクトから成る cell 配列として指定できます。
cell 配列入力の場合、cell 配列は数値配列、categorical 配列、または dlarray
オブジェクトから成る N 行 1 列の cell 配列でなければなりません。ここで、N は観測値の数です。
ソフトウェアは categorical 入力を自動的に数値に変換し、ニューラル ネットワークに渡します。ソフトウェアが categorical 入力を数値に変換する方法を指定するには、CategoricalInputEncoding
引数を使用します。
シーケンスを表す数値配列、categorical 配列、または dlarray
オブジェクトのサイズと形状は、シーケンス データの種類によって異なり、InputDataFormats
引数と一致していなければなりません。
次の表のレイアウトにおいて、シーケンス入力層をもつほとんどのネットワークでは、minibatchpredict
関数にシーケンス データを渡す必要があります。
データ | レイアウト |
---|---|
ベクトル シーケンス | s 行 c 列の行列。ここで、s と c はそれぞれシーケンスのタイム ステップ数とチャネル (特徴) 数です。 |
categorical ベクトル シーケンス | s 行 1 列の categorical 配列。ここで、s はシーケンスのタイム ステップ数です。 |
1 次元イメージ シーケンス | h x c x s の配列。ここで、h および c はそれぞれイメージの高さおよびチャネル数に対応します。s はシーケンス長です。 |
categorical 1 次元イメージ シーケンス | h×1×s の categorical 配列。ここで、h はイメージの高さに対応します。s はシーケンス長です。 |
2 次元イメージ シーケンス | h x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
categorical 2 次元イメージ シーケンス | h×w×1×s の配列。ここで、h と w はそれぞれイメージの高さと幅に対応します。s はシーケンス長です。 |
3 次元イメージ シーケンス | h x w x d x c x s。ここで、h、w、d、および c は、それぞれ 3 次元イメージの高さ、幅、深さ、およびチャネル数に対応します。s はシーケンス長です。 |
categorical 3 次元イメージ シーケンス | h×w×d×1×s。ここで、h、w、d は、それぞれ 3 次元イメージの高さ、幅、深さに対応します。s はシーケンス長です。 |
異なるレイアウトのデータの場合は、InputDataFormats
引数を使用してデータのレイアウトが異なることを示すか、形式を整えた dlarray
オブジェクトを代わりに使用します。詳細については、深層学習のデータ形式を参照してください。
データストア
データストアはシーケンスのバッチを読み取ります。データストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
シーケンス データおよび時系列データの場合、minibatchpredict
関数は次のデータストアをサポートします。
データストア | 説明 | 使用例 |
---|---|---|
TransformedDatastore | カスタム変換関数を使用して、基になるデータストアから読み取ったデータのバッチを変換するデータストア。 |
|
CombinedDatastore | 2 つ以上の基になるデータストアからデータを読み取るデータストア。 | 複数の入力をもつネットワークを使用して予測を行います。 |
カスタム ミニバッチ データストア | データのミニバッチを返すカスタム データストア。 | 他のデータストアでサポートされていないレイアウトのデータを使用してニューラル ネットワークに学習させます。 詳細は、カスタム ミニバッチ データストアの開発を参照してください。 |
transform
関数と combine
関数を使用して、他の組み込みデータストアを使用できます。これらの関数は、データストアから読み取られたデータを minibatchpredict
関数に必要なレイアウトに変換できます。たとえば、ArrayDatastore
オブジェクトおよび TabularTextDatastore
オブジェクトをそれぞれ使用して、インメモリ配列および CSV ファイルから読み取ったデータの変換と結合を行うことができます。データストア出力に必要なレイアウトは、ニューラル ネットワーク アーキテクチャによって異なります。詳細については、データストアのカスタマイズを参照してください。
minibatchqueue
オブジェクト
ソフトウェアがミニバッチを処理および変換する方法をより細かく制御するには、データを minibatchqueue
オブジェクトとして指定できます。これを実行すると、minibatchpredict
関数はオブジェクトの MiniBatchSize
プロパティを無視し、代わりに名前と値の引数 MiniBatchSize
を使用します。minibatchqueue
入力の場合、PreprocessingEnvironment
プロパティは "serial"
でなければなりません。
メモ
この引数は複素数値の予測子をサポートします。
特徴または表形式のデータ。数値配列、categorical 配列、データストア、table、または minibatchqueue
オブジェクトとして指定します。
メモリに収まり、追加の処理を必要としないデータがある場合、入力データを数値配列または table として指定するのが通常最も簡単なオプションです。システムに保存されている特徴データや表形式のデータを使用して学習させる場合、またはカスタム変換などの追加処理を適用する場合、データストアが通常最も簡単なオプションです。
ヒント
ニューラル ネットワークには、特定のレイアウトをもつ入力データが必要です。たとえば、特徴分類ネットワークは通常、1 行 c 列のベクトルとして表された特徴と表形式のデータを必要とします。ここで、c はデータの特徴の数です。ニューラル ネットワークの入力層では、通常、必要とされるデータ レイアウトが指定されています。
ほとんどのデータストアと関数は、ネットワークで必要とされるレイアウトでデータを返します。データのレイアウトが異なる場合、名前と値の引数 InputDataFormats
を使用するか、形式を整えた dlarray
オブジェクトとして入力データを指定することによって、レイアウトを指定します。通常、名前と値の引数 InputDataFormats
を指定する方が、入力データのレイアウトを手動で調整するよりも簡単です。
入力層をもたないニューラル ネットワークの場合、名前と値の引数 InputDataFormats
または形式を整えた dlarray
オブジェクトを使用しなければなりません。
詳細については、深層学習のデータ形式を参照してください。
数値配列または dlarray
オブジェクト
メモリに収まり、なおかつカスタム変換などの追加の処理を必要としない特徴データの場合、特徴データを数値配列または dlarray
オブジェクトとして指定できます。
数値配列と形式を整えていない dlarray
オブジェクトのレイアウトは、InputDataFormats
引数と一致していなければなりません。特徴入力をもつほとんどのネットワークでは、numObservations
行 numFeatures
列の配列として指定した入力データが必要です。ここで、numObservations
は観測値の数、numFeatures
は入力データの特徴の数です。
categorical 配列 (R2025a 以降)
メモリに収まり、カスタム変換などの追加処理を必要としない個別の特徴の場合は、特徴データを categorical 配列として指定できます。
ソフトウェアは categorical 入力を自動的に数値に変換し、ニューラル ネットワークに渡します。ソフトウェアが categorical 入力を数値に変換する方法を指定するには、CategoricalInputEncoding
引数を使用します。categorical 配列のレイアウトは、InputDataFormats
引数と一致していなければなりません。
カテゴリカル特徴量入力をもつほとんどのネットワークでは、N 行 1 列のベクトルとして指定した入力データが必要です。ここで、N は観測数です。ソフトウェアがこのデータを数値配列に変換すると、このレイアウトのデータ形式は "BC"
(バッチ、チャネル) になります。"C"
(チャネル) 次元のサイズは、CategoricalInputEncoding
引数によって異なります。
異なるレイアウトのデータの場合は、InputDataFormats
学習オプションを使用してデータのレイアウトが異なることを示すか、形式を整えた dlarray
オブジェクトを代わりに使用します。詳細については、深層学習のデータ形式を参照してください。
table
メモリに収まり、カスタム変換などの追加処理を必要としない特徴データの場合、特徴データを table として指定できます。
特徴データを table として指定するには、numObservations
個の行と numFeatures+1
個の列をもつ table を指定します。ここで、numObservations
と numFeatures
は、それぞれ入力データの観測値とチャネルの数です。minibatchpredict
関数は、最初の numFeatures
個の列を入力特徴として使用します。
データストア
データストアは特徴データのバッチを読み取ります。データストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
特徴データおよび表形式データの場合、minibatchpredict
関数は次のデータストアをサポートします。
データ型 | 説明 | 使用例 |
---|---|---|
TransformedDatastore | カスタム変換関数を使用して、基になるデータストアから読み取ったデータのバッチを変換するデータストア。 |
|
CombinedDatastore | 2 つ以上の基になるデータストアからデータを読み取るデータストア。 | 複数の入力をもつニューラル ネットワークを使用して予測を行う。 |
カスタム ミニバッチ データストア | データのミニバッチを返すカスタム データストア。 | 他のデータストアでサポートされていないレイアウトのデータを使用して予測を行います。 詳細は、カスタム ミニバッチ データストアの開発を参照してください。 |
関数 transform
および combine
を使用して、予測を行うための他の組み込みデータストアを使用できます。これらの関数は、データストアから読み取られたデータを、minibatchpredict
関数に必要な table または cell 配列形式に変換できます。詳細については、データストアのカスタマイズを参照してください。
minibatchqueue
オブジェクト
ソフトウェアがミニバッチを処理および変換する方法をより細かく制御するには、データを minibatchqueue
オブジェクトとして指定できます。これを実行すると、minibatchpredict
関数はオブジェクトの MiniBatchSize
プロパティを無視し、代わりに名前と値の引数 MiniBatchSize
を使用します。minibatchqueue
入力の場合、PreprocessingEnvironment
プロパティは "serial"
でなければなりません。
メモ
この引数は複素数値の予測子をサポートします。
汎用データまたはデータ型の組み合わせ。数値配列、categorical 配列、dlarray
オブジェクト、データストア、または minibatchqueue
オブジェクトとして指定します。
メモリに収まり、追加の処理を必要としないデータがある場合、入力データを数値配列として指定するのが通常最も簡単なオプションです。システムに保存されたデータを使用して学習させる場合、または追加の処理を適用する場合は、データストアを使用するのが通常最も簡単なオプションです。
ヒント
ニューラル ネットワークには、特定のレイアウトをもつ入力データが必要です。たとえば、ベクトルシーケンス分類ネットワークは通常、t 行 c 列の配列として表されたベクトルシーケンスを必要とします。ここで、t と c は、それぞれタイム ステップの数とシーケンスのチャネル数です。ニューラル ネットワークの入力層では、通常、必要とされるデータ レイアウトが指定されています。
ほとんどのデータストアと関数は、ネットワークで必要とされるレイアウトでデータを返します。データのレイアウトが異なる場合、名前と値の引数 InputDataFormats
を使用するか、形式を整えた dlarray
オブジェクトとして入力データを指定することによって、レイアウトを指定します。通常、名前と値の引数 InputDataFormats
を指定する方が、入力データのレイアウトを手動で調整するよりも簡単です。
入力層をもたないニューラル ネットワークの場合、名前と値の引数 InputDataFormats
または形式を整えた dlarray
オブジェクトを使用しなければなりません。
詳細については、深層学習のデータ形式を参照してください。
数値配列、categorical 配列、または dlarray
オブジェクト
メモリに収まり、カスタム変換などの追加処理を必要としないデータの場合は、データを数値配列、categorical 配列、または dlarray
オブジェクトとして指定できます。
inputLayer
オブジェクトをもつニューラル ネットワークの場合、必要とされる入力データのレイアウトは、層の InputFormat
プロパティで指定します。
ソフトウェアは categorical 入力を自動的に数値に変換し、ニューラル ネットワークに渡します。ソフトウェアが categorical 入力を数値に変換する方法を指定するには、CategoricalInputEncoding
引数を使用します。categorical 配列のレイアウトは、InputDataFormats
引数と一致していなければなりません。
異なるレイアウトのデータの場合は、InputDataFormats
引数を使用してデータのレイアウトが異なることを示すか、形式を整えた dlarray
オブジェクトを代わりに使用します。詳細については、深層学習のデータ形式を参照してください。
データストア
データストアはデータのバッチを読み取ります。データストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
汎用データまたはデータ型の組み合わせの場合、minibatchpredict
関数は次のデータストアをサポートします。
データ型 | 説明 | 使用例 |
---|---|---|
TransformedDatastore | カスタム変換関数を使用して、基になるデータストアから読み取ったデータのバッチを変換するデータストア。 |
|
CombinedDatastore | 2 つ以上の基になるデータストアからデータを読み取るデータストア。 | 複数の入力をもつニューラル ネットワークを使用して予測を行う。 |
カスタム ミニバッチ データストア | データのミニバッチを返すカスタム データストア。 | 他のデータストアでサポートされていない形式のデータを使用して予測を行います。 詳細は、カスタム ミニバッチ データストアの開発を参照してください。 |
transform
関数と combine
関数を使用して、他の組み込みデータストアを使用できます。これらの関数は、データストアから読み取られたデータを、minibatchpredict
に必要な table または cell 配列形式に変換できます。詳細については、データストアのカスタマイズを参照してください。
minibatchqueue
オブジェクト
ソフトウェアがミニバッチを処理および変換する方法をより細かく制御するには、データを minibatchqueue
オブジェクトとして指定できます。これを実行すると、minibatchpredict
関数はオブジェクトの MiniBatchSize
プロパティを無視し、代わりに名前と値の引数 MiniBatchSize
を使用します。minibatchqueue
入力の場合、PreprocessingEnvironment
プロパティは "serial"
でなければなりません。
メモ
この引数は複素数値の予測子をサポートします。
複数の入力をもつニューラル ネットワークのインメモリ データ。数値配列、categorical 配列、dlarray
オブジェクト、または cell 配列として指定します。
複数の入力をもつニューラル ネットワークで、メモリに収まり、追加の処理を必要としないデータがある場合は、入力データをインメモリ配列として指定するのが通常最も簡単なオプションです。システムに保存されているデータを使用して予測を行う場合、または追加の処理を適用する場合は、データストアを使用するのが通常最も簡単なオプションです。
ヒント
ニューラル ネットワークには、特定のレイアウトをもつ入力データが必要です。たとえば、ベクトルシーケンス分類ネットワークは通常、t 行 c 列の配列として表されたベクトルシーケンスを必要とします。ここで、t と c は、それぞれタイム ステップの数とシーケンスのチャネル数です。ニューラル ネットワークの入力層では、通常、必要とされるデータ レイアウトが指定されています。
ほとんどのデータストアと関数は、ネットワークで必要とされるレイアウトでデータを返します。データのレイアウトが異なる場合、名前と値の引数 InputDataFormats
を使用するか、形式を整えた dlarray
オブジェクトとして入力データを指定することによって、レイアウトを指定します。通常、名前と値の引数 InputDataFormats
を指定する方が、入力データのレイアウトを手動で調整するよりも簡単です。
入力層をもたないニューラル ネットワークの場合、名前と値の引数 InputDataFormats
または形式を整えた dlarray
オブジェクトを使用しなければなりません。
詳細については、深層学習のデータ形式を参照してください。
各入力 X1,...,XN
(ここで N
は入力数) には、データは、数値配列、dlarray
オブジェクトまたは cell 配列 (データ型と一致する引数 images
、sequences
、または features
、data
) として指定します。入力 Xi
は、ネットワーク入力 net.InputNames(i)
に対応します。
メモ
この引数は複素数値の予測子をサポートします。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: minibatchpredict(net,images,MiniBatchSize=32)
は、サイズ 32 のミニバッチを使用して images
をループ処理することで予測を行います。
予測に使用するミニバッチのサイズ。正の整数として指定します。ミニバッチのサイズが大きくなるとより多くのメモリが必要になりますが、予測時間が短縮される可能性があります。
長さが異なるシーケンスで予測を行うと、ミニバッチのサイズが、入力データに追加されるパディングの量に影響し、予測値が変わることがあります。さまざまな値を使用して、ネットワークに最適なものを確認してください。パディング オプションを指定するには、名前と値の引数 SequenceLength
を使用します。
メモ
入力データを minibatchqueue
オブジェクトとして指定すると、minibatchpredict
関数は、minibatchqueue
オブジェクトの MiniBatchSize
プロパティではなく、この引数で指定されたミニバッチ サイズを使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力の抽出元の層。層の名前を含む string 配列、または層の名前を含む文字ベクトルの cell 配列として指定します。
Outputs(i)
が 1 つの出力をもつ層に対応する場合、Outputs(i)
は層の名前です。Outputs(i)
が複数の出力をもつ層に対応する場合、Outputs(i)
はまず層の名前、その後に文字/
、さらに層出力の名前が続きます ("layerName/outputName"
)。
既定値は net.OutputNames
です。
パフォーマンスの最適化。次のいずれかの値として指定します。
"auto"
— 入力ネットワークとハードウェア リソースに適した最適化の回数を自動的に適用します。"mex"
— MEX 関数をコンパイルして実行します。このオプションは GPU の使用時にのみ利用できます。入力データ、またはネットワークの学習可能なパラメーターは、gpuArray
オブジェクトとして格納しなければなりません。GPU を使用するには Parallel Computing Toolbox™ とサポートされている GPU デバイスが必要です。サポートされているデバイスの詳細については、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。Parallel Computing Toolbox または適切な GPU が利用できない場合、エラーが返されます。"none"
— すべての高速化を無効にします。
"auto"
オプションまたは "mex"
オプションを使用した場合、ソフトウェアはパフォーマンス上のメリットを提供しますが、初期実行時間が長くなります。関数のそれ以降の呼び出しでは、通常、より高速になります。異なる入力データを使用して関数を複数回呼び出す場合は、パフォーマンスの最適化を使用してください。
Acceleration
が "mex"
の場合、ソフトウェアは、関数の呼び出しで指定したモデルとパラメーターに基づいて MEX 関数を生成し、実行します。1 つのモデルに一度に複数の MEX 関数を関連付けることができます。モデルの変数をクリアすると、そのモデルに関連付けられている MEX 関数もクリアされます。
Acceleration
が "auto"
の場合、ソフトウェアは MEX 関数を生成しません。
"mex"
オプションは GPU の使用時にのみ利用できます。C/C++ コンパイラがインストールされ、GPU Coder™ Interface for Deep Learning サポート パッケージがなければなりません。MATLAB® でアドオン エクスプローラーを使用してサポート パッケージをインストールします。設定手順については、MEX の設定 (GPU Coder)を参照してください。GPU Coder は不要です。
"mex"
オプションには以下の制限があります。
single
の精度のデータ型のみがサポートされています。入力データまたはネットワークの学習可能なパラメーターは、基となるデータ型がsingle
でなければなりません。入力層に接続されていない入力が存在するネットワークはサポートされていません。
トレースされた
dlarray
オブジェクトはサポートされていません。これは、dlfeval
関数の呼び出し内では"mex"
オプションがサポートされていないことを意味します。一部の層はサポートされていません。サポートされている層の一覧については、サポートされている層 (GPU Coder)を参照してください。
"mex"
オプションを使用した場合、MATLAB Compiler™ はネットワークの展開をサポートしません。
量子化されたネットワークでは、"mex"
オプションには、Compute Capability 6.1、6.3、またはそれ以上の CUDA® 対応 NVIDIA® GPU が必要です。
ハードウェア リソース。次のいずれかの値として指定します。
"auto"
— 利用可能な場合、GPU を使用します。そうでない場合、CPU を使用します。net
が量子化ネットワークであり、TargetLibrary
プロパティが"none"
に設定されている場合、GPU が使用可能であっても CPU を使用します。"gpu"
— GPU を使用します。GPU を使用するには Parallel Computing Toolbox ライセンスとサポートされている GPU デバイスが必要です。サポートされているデバイスの詳細については、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。Parallel Computing Toolbox または適切な GPU が利用できない場合、エラーが返されます。"cpu"
— CPU を使用します。
入力シーケンスのパディングまたは切り捨てを行うオプション。次のいずれかのオプションとして指定します。
"longest"
— 最長のシーケンスと同じ長さになるようにシーケンスのパディングを行います。このオプションを使用するとデータは破棄されませんが、パディングによってニューラル ネットワークにノイズが生じることがあります。"shortest"
— 最短のシーケンスと同じ長さになるようにシーケンスの切り捨てを行います。このオプションを使用すると、関数はパディングを追加しなくなりますが、代わりにデータが破棄されます。
入力シーケンスのパディングと切り捨ての効果の詳細については、シーケンスのパディングと切り捨てを参照してください。
パディングまたは切り捨ての方向。次のいずれかのオプションとして指定します。
"right"
— シーケンスの右側に対してパディングまたは切り捨てを行います。シーケンスは同じタイム ステップで始まり、ソフトウェアによって各シーケンスの末尾に対して切り捨てまたはパディングの追加が行われます。"left"
— シーケンスの左側に対してパディングまたは切り捨てを行います。各シーケンスが同じタイム ステップで終わるように、ソフトウェアによって各シーケンスの先頭に対して切り捨てまたはパディングの追加が行われます。
再帰層は 1 タイム ステップずつシーケンス データを処理するため、再帰層の OutputMode
プロパティが "last"
の場合、最後のタイム ステップでパディングを行うと層の出力に悪影響を与える可能性があります。シーケンス データの左側に対してパディングまたは切り捨てを行うには、名前と値の引数 SequencePaddingDirection
を "left"
に設定します。
sequence-to-sequence ニューラル ネットワークの場合 (各再帰層について OutputMode
プロパティが "sequence"
である場合)、最初のタイム ステップでパディングを行うと、それ以前のタイム ステップの予測に悪影響を与える可能性があります。シーケンス データの右側に対してパディングまたは切り捨てを行うには、名前と値の引数 SequencePaddingDirection
を "right"
に設定します。
シーケンスのパディングと切り捨ての効果の詳細については、シーケンスのパディングと切り捨てを参照してください。
入力シーケンスをパディングする値。スカラーとして指定します。
ニューラル ネットワーク全体にエラーが伝播される可能性があるため、NaN
でシーケンスをパディングしないでください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
R2025a 以降
categorical 入力の符号化。次のいずれかの値として指定します。
"integer"
— categorical 入力を整数値に変換します。この場合、ネットワークは categorical 入力ごとに 1 つの入力チャネルをもたなければなりません。"one-hot"
— categorical 入力を one-hot 符号化されたベクトルに変換します。この場合、ネットワークは categorical 入力ごとにnumCategories
個のチャネルをもたなければなりません。ここで、numCategories
は対応する categorical 入力のカテゴリの数です。
入力データの次元の説明。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。
InputDataFormats
が "auto"
の場合、ソフトウェアは、ネットワークの入力で必要とされる形式を使用します。そうでない場合、ソフトウェアは、該当するネットワーク入力に対して指定された形式を使用します。
データ形式は文字列で、各文字は対応するデータ次元のタイプを表します。
各文字は以下のとおりです。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを表し、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。データは "CBT"
(チャネル、バッチ、時間) の形式で記述できます。
"S"
または "U"
のラベルが付いた次元については、複数回指定できます。ラベル "C"
、"B"
、および "T"
はそれぞれ 1 回まで使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U"
次元を無視します。
複数の入力をもつニューラル ネットワーク net
の場合、入力データ形式の配列を指定します。ここで、InputDataFormats(i)
は入力 net.InputNames(i)
に対応します。
詳細については、深層学習のデータ形式を参照してください。
データ型: char
| string
| cell
出力データの次元の説明。次のいずれかの値として指定します。
"auto"
— 出力データと入力データの次元の数が同じ場合、関数minibatchpredict
はInputDataFormats
で指定された形式を使用します。出力データと入力データの次元数が異なる場合、minibatchpredict
関数は、出力データの次元をネットワーク入力層またはInputDataFormats
値と一致するように自動的に並べ替えます。string、文字ベクトル、または文字ベクトルの cell 配列 —
minibatchpredict
関数は指定されたデータ形式を使用します。
データ形式は文字列で、各文字は対応するデータ次元のタイプを表します。
各文字は以下のとおりです。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを表し、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。データは "CBT"
(チャネル、バッチ、時間) の形式で記述できます。
"S"
または "U"
のラベルが付いた次元については、複数回指定できます。ラベル "C"
、"B"
、および "T"
はそれぞれ 1 回まで使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U"
次元を無視します。
詳細については、深層学習のデータ形式を参照してください。
データ型: char
| string
| cell
パディングされたデータを一様配列として返すフラグ。logical の 1
(true
) または 0
(false
) として指定します。値を 0
に設定すると、ソフトウェアは予測の cell 配列を出力します。
出力引数
ニューラル ネットワーク予測。数値配列、dlarray
オブジェクト、または cell 配列 Y1,...,YM
として返されます。ここで、M
はネットワーク出力の数です。
予測 Yi
は出力 Outputs(i)
に対応します。
分類ニューラル ネットワークの場合、出力の要素は各クラスのスコアに対応します。スコアの順序は、学習データ内のカテゴリの順序と一致します。たとえば、カテゴリカル ラベル TTrain
を使用してニューラル ネットワークに学習させた場合、スコアの順序は、categories(TTrain)
によって指定されたカテゴリの順序と一致します。
詳細
minibatchpredict
関数は、整数の数値配列とデータストア入力を単精度の浮動小数点値に変換します。minibatchqueue
入力の場合、ソフトウェアはその入力の OutputCast
プロパティで指定されたデータ型を使用します。
予測関数か検証関数を単精度の学習可能なパラメーターと状態パラメーターをもつ dlnetwork
オブジェクトと組み合わせて使用する場合、単精度浮動小数点演算を使用して計算が実行されます。
予測関数か検証関数を倍精度の学習可能なパラメーターと状態パラメーターをもつ dlnetwork
オブジェクトと組み合わせて使用する場合は、次のようになります。
入力データが単精度の場合、単精度浮動小数点演算を使用して計算が実行されます。
入力データが倍精度の場合、倍精度浮動小数点演算を使用して計算が実行されます。
最高のパフォーマンスを提供するために、GPU を使用した MATLAB での深層学習は確定的であることを保証しません。ネットワーク アーキテクチャによっては、GPU を使用して 2 つの同一のネットワークに学習させたり、同じネットワークとデータを使用して 2 つの予測を行ったりする場合に、ある条件下で異なる結果が得られることがあります。GPU を使用して深層学習演算を実行するときに確定性が必要な場合は、deep.gpu.deterministicAlgorithms
関数 (R2024b 以降)を使用します。
rng
関数を使用して同じ乱数発生器とシードを設定した場合、CPU を使用して行った予測は再現性をもちます。
ヒント
複数の GPU を使用して並列で予測を行うには、GPU ごとに 1 つのワーカーをもつ並列プールを作成し、データを分割して並列で予測を行います。複数の GPU を使用して予測を行う方法を示す例については、自動マルチ GPU のサポートを使用したネットワークの学習を参照してください。
拡張機能
minibatchpredict 関数は、GPU による高速化を完全にサポートします。
既定では、minibatchpredict
は利用可能な GPU がある場合にそれを使用します。net
が量子化ネットワークであり、TargetLibrary
プロパティが "none"
に設定されている場合、minibatchpredict
は、GPU が使用可能であっても CPU を使用します。名前と値の引数 ExecutionEnvironment
を指定することにより、minibatchpredict
関数が使用するハードウェアを指定できます。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2024a で導入ニューラル ネットワークで予測を行うために categorical 入力を数値に変換する方法を指定するには、CategoricalInputEncoding
引数を使用します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)