分类
学習済み深層学習ニュ,ラルネットワ,クを使用したデ,タの分類
構文
説明
1つのCPUまたは1つのGPUで深層学習用の学習済みニューラルネットワークを使用して予測を実行できます。GPUを使用するには并行计算工具箱™とサポートされているGPUデバイスが必要です。サポトされているデバスにいては,Gpu計算の要件(并行计算工具箱)を参照してください。名前と値の引数ExecutionEnvironment
を使用して,ハ,ドウェア要件を指定します。
複数の出力があるネットワ,クの場合,代わりに関数预测
を使用して,ReturnCategorical
オプションを真正的
に設定します。
___=分类(___,
は,1以上の名前と値の引数で指定された追加オプションを使用して,クラスラベルを予測します。名称=值
)
ヒント
長さが異なるシーケンスで予測を行うと,ミニバッチのサイズが,入力データに追加されるパディングの量に影響し,予測値が変わることがあります。さまざまな値を使用して,ネットワ,クに最適なものを確認してください。ミニバッチのサ电子邮箱ズとパディングのオプションを指定するには,MiniBatchSize
オプションとSequenceLength
オプションをそれぞれ使用します。
例
学習済みの畳み込みニュラルネットワクを使用したメジの分類
事前学習済みのネットワ,クdigitsNet
を読み込みます。このネットワ,クには,手書きの数字を分類する分類畳み込みニュ,ラルネットワ,クが含まれています。
负载digitsNet
ネットワ,ク層を表示します。ネットワ,クの出力層は分類層です。
层=净。层
图层数组= 15x14 'relu_1' ReLU ReLU 5 'maxpool_1' 2- d Max Pooling 2x2 Max Pooling with stride [2 2] and padding [0 0 0 0 0] 6 'conv_2' 2- d Convolution 16 3x3x8 convolutions with stride [1 1] and padding 'same' 7 'batchnorm_2' Batch normalization Batch normalization with 16 channel 8'relu_2' ReLU ReLU 9 'maxpool_2'二维最大池化2x2最大池化与stride[2 2]和填充[0 0 0 0 0]10 'conv_3'二维卷积32 3x3x16卷积与stride[1 1]和填充'相同' 11 'batchnorm_3'批归一化批归一化32通道12 'relu_3' ReLU ReLU 13 'fc'全连接10全连接层14 'softmax' softmax softmax 15 'classoutput'分类输出crossentropyex与'0'和9个其他类
テスト▪▪メ▪▪ジを読み込みます。
digitDatasetPath = fullfile(toolboxdir(“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);imdsTest = imageDatastore(digitDatasetPath, inclesubfolders =true);
関数分类
を使用して▪▪メ▪▪ジを分類します。
YTest = category (net,imdsTest);
いくかのテストメジを,それらの予測と共にランダムに表示します。
numImages = 9;idx = randperm(nummel (imdste . files),numImages);图tiledlayout (“流”)为i = 1:numImages nexttile imshow(imdsTest.Files{idx(i)});标题(“预测标签:”+字符串(欧美(idx (i))))结束
学習済みLSTMネットワ,クを使用したシ,ケンスの分類
事前学習済みのネットワ,クJapaneseVowelsNet
を読み込みます。このネットワークは,[1]および[2]で説明されているように日本元音データセットで学習させた事前学習済みのLSTMネットワークです。これは,ミニバッチのサイズ27を使用して,シーケンス長で並べ替えられたシーケンスで学習させています。
负载JapaneseVowelsNet
ネットワ,クア,キテクチャを表示します。
网层
ans = 5x1层数组与层:1' sequenceinput'序列输入序列输入与12维2 'lstm' lstm lstm与100个隐藏单元3 'fc'全连接9全连接层4 'softmax' softmax softmax 5 'classoutput'分类输出crossentropyex与'1'和8个其他类
テストデ,タを読み込みます。
[XTest,TTest] =日本evowelstestdata;
テストデ,タを分類します。
YTest = category (net,XTest);
混同チャ,トで予測を表示します。
次图confusionchart (tt)
予測の分類精度を計算します。
精度=平均值(YTest == TTest)
准确度= 0.8595
学習済みネットワ,クを使用した特徴デ,タの分類
事前学習済みのネットワ,クTransmissionCasingNet
を読み込みます。このネットワークは,数値センサーの読み取り値,統計量,およびカテゴリカル入力の混合を所与として,トランスミッションシステムの歯車の状態を分類します。
负载TransmissionCasingNet
ネットワ,クア,キテクチャを表示します。
网层
ans = 7x1层阵列:1' input'特征输入22个特征与'zscore'归一化2' fc_1'全连接50全连接层3 'batchnorm'批量归一化批量归一化50通道4 'relu' relu relu 5 'fc_2'全连接2全连接层6 'softmax' softmax softmax 7 'classoutput'分类输出crossentropyex类'No Tooth Fault'和'Tooth Fault'
CSVファCSVル“transmissionCasingData.csv”
からトランスミッションケ,シングデ,タを読み取ります。
文件名=“transmissionCasingData.csv”;tbl = readtable(文件名,TextType=“字符串”);
関数convertvars
を使用して,予測のラベルを分类に変換します。
labelName =“GearToothCondition”;tbl = convertvars(tbl,labelName,“分类”);
カテゴリカル特徴量を使用して予測を行うには,最初にカテゴリカル特徴量を数値に変換しなければなりません。まず,関数convertvars
を使用して,すべてのカテゴリカル入力変数の名前を格納した字符串配列を指定することにより,カテゴリカル予測子を直言に変換します。このデ,タセットには,“SensorCondition”
と“ShaftCondition”
という名前の2のカテゴリカル特徴量があります。
categoricalInputNames = [“SensorCondition”“ShaftCondition”];tbl = convertvars(tbl,categoricalInputNames,“分类”);
カテゴリカル入力変数をル,プ処理します。各変数にいて次を行います。
関数
onehotencode
を使用して,分类値を一热符号化ベクトルに変換する。関数
addvars
を使用して,单热ベクトルを表に追加する。対応する分类デ,タが含まれる列の後にベクトルを挿入するように指定する。分类デ,タが含まれる対応する列を削除する。
为i = 1:numel(categoricalInputNames) name = categoricalInputNames(i);Oh = onehotencode(tbl(:,name));tbl = addvars(tbl,oh,After=name);Tbl (:,name) = [];结束
関数splitvars
を使用して,ベクトルを別々の列に分割します。
TBL =分裂(TBL);
表の最初の数行を表示します。
头(台)
SigMean SigMedian SigRMS SigVar SigPeak SigPeak2Peak SigSkewness SigKurtosis SigCrestFactor SigMAD SigRangeCumSum SigCorrDimension SigApproxEntropy SigLyapExponent PeakFreq HighFreqPower EnvPower PeakSpecKurtosis没有传感器漂移传感器漂移没有轴穿轴穿GearToothCondition ________ _________ ______ _______ _______ ____________ ___________ ___________ ______________ _______ ______________ ________________ ________________ _______________ ________ _____________ ________________________ _______________ ____________ _____________ __________ __________________ -0.94876 -0.9722 1.3726 0.98387 0.81571 3.6314 -0.041525 2.2666 2.0514 0.8081 28562 1.1429 0.031581 79.931 0 6.75e-06 3.23e-07 162.13 01 10无齿故障-0.97537 -0.98958 1.3937 0.99105 0.81571 3.6314 -0.023777 2.2598 2.0203 0.81017 29418 1.1362 0.037835 70.325 0 5.08e-08 9.16e-08 226.12 01 10无齿故障1.0502 1.0267 1.4449 0.98491 3.6314 -0.04162 2.2658 1.9487 0.80853 31710 1.14790.031565 - 125.19 6.74 2.85 e-06 e-07 162.13 0 1 0 1没有牙齿错1.0227 1.0045 1.4288 0.99553 2.8157 3.6314 -0.016356 2.2483 1.9707 0.81324 30984 1.1472 0.032088 112.5 4.99 e-06 2.4 e-07 162.13 0 1 0 1没有牙齿错1.0123 1.0024 1.4202 0.99233 2.8157 3.6314 -0.014701 2.2542 1.9826 0.81156 30661 1.1469 0.03287 108.86 3.62 e-06 2.28 e-07 230.39 0 1 0 1没有牙齿错1.0275 1.0102 1.4338 1.0001 2.8157 3.6314 -0.02659 2.2439 1.9638 1.65 0.81589 1.0985 0.033427 64.576 31102 0 2.55 e-06 e-07 230.3901 01牙号故障1.0464 1.0275 1.4477 1.0011 2.8157 3.6314 -0.042849 2.2455 1.9449 0.81595 31665 1.1417 0.034159 98.838 0 1.73e-06 1.55e-07 230.39 01 01牙号故障1.0459 1.0257 1.4402 0.98047 2.8157 3.6314 -0.035405 2.2757 1.955 0.80583 31554 1.1345 0.0353 44.223 0 1.11e-06 1.39e-07 230.39 01 011牙号故障
表からテストラベルを抽出します。
TTest = tbl{:,labelName};
学習済みネットワ,クを使用してテストデ,タのラベルを予測し,精度を計算します。学習に使用されるサ▪▪ズと同じミニバッチサ▪▪ズを指定します。
YTest =分类(net,tbl(:,1:end-1));
混同行列で予測を可視化します。
次图confusionchart (tt)
分類精度を計算します。精度は,ネットワ,クが正しく予測するラベルの比率です。
精度=平均值(YTest == TTest)
准确度= 0.9952
入力引数
网
- - - - - -学習済みネットワ,ク
SeriesNetwork
オブジェクト|DAGNetwork
オブジェクト
学習済みネットワ,ク。SeriesNetwork
またはDAGNetwork
オブジェクトとして指定します。事前学習済みのネットワ,クをインポートする (たとえば、関数googlenet
を使用する),またはtrainNetwork
を使用して独自のネットワ,クに学習させることによって,学習済みネットワ,クを取得できます。
图片
- - - - - -イメージデータ
デ,タストア|数値配列|表格
。次のいずれかとして指定します。
デタ型 | 説明 | 使用例 | |
---|---|---|---|
デ,タストア | ImageDatastore |
ディスクに保存されたメジのデタストア | @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
AugmentedImageDatastore |
サイズ変更,回転,反転,せん断,平行移動を含む,ランダムなアフィン幾何学的変換を適用するデータストア | @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|
TransformedDatastore |
カスタム変換関数を使用して,基になるデ,タストアから読み取ったデ,タのバッチを変換するデ,タストア |
|
|
CombinedDatastore |
2 .以上の基になるデタストアからデタを読み取るデタストア |
|
|
カスタムミニバッチデ,タストア | デ,タのミニバッチを返すカスタムデ,タストア | 他のデ,タストアでサポ,トされていない形式のデ,タを使用して予測を行います。 詳細は,カスタムミニバッチデ,タストアの開発を参照してください。 |
|
数値配列 | 数値配列として指定された▪▪メ▪▪ジ | メモリに収まり,なおかサズ変更などの追加の処理を必要としないデタを使用して予測を行います。 | |
表格 | 表として指定されたaapl . exe .メ | 表に格納されたデ,タを使用して予測を行います。 |
複数の入力をもTransformedDatastore
オブジェクトまたはCombinedDatastore
オブジェクトでなければなりません。
ヒント
ビデオデタのようなメジのシケンスの場合,入力引数序列
を使用します。
デ,タストア
デ,タストアは;デ,タストアは、メモリに収まらないデータがある場合や、入力データのサイズを変更したい場合に使用します。
以下のデタストアは,メジデタ用の分类
と直接互換性があります。
カスタムミニバッチデ,タストア。詳細は,カスタムミニバッチデ,タストアの開発を参照してください。
ImageDatastore
オブジェクトを使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができる点に注意してください。メ,ジの読み取りにカスタム関数を使用する場合,ImageDatastore
オブジェクトは事前取得を行いません。
ヒント
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @augmentedImageDatastore
を使用します。
関数imageDatastore
のreadFcn
オプションは通常,速度が大幅に低下するため,前処理またはサesc escズ変更に使用しないでください。
関数变换
および结合
を使用して,予測を行うための他の組み込みデ,タストアを使用できます。これらの関数は,デ,タストアから読み取られたデ,タを,分类
に必要な形式に変換できます。
デ,タストア出力に必要な形式は,ネットワ,クア,キテクチャによって異なります。
ネットワ,クア,キテクチャ | デ,タストア出力 | 出力の例 |
---|---|---|
単一入力 | 表またはcell配列。最初の列は予測子を指定します。 表の要素は,スカラー,行ベクトルであるか,数値配列が格納された1行1列の细胞配列でなければなりません。 カスタムデ,タストアは表を出力しなければなりません。 |
数据=读取(ds) data = 4×1 table Predictors __________________ {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double} |
数据=读取(ds) Data = 4×1 cell array {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double} |
||
複数入力 | 少なくとも 最初の 入力の順序は,ネットワ,クの |
数据=读取(ds) Data = 4×2 cell array {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} |
予測子の形式は,デ,タのタ,プによって異なります。
デタ | 形式 |
---|---|
2次元 | H×w×cの数値配列。ここで,h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。 |
3次元 | H×w×d×cの数値配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数です。 |
詳細にいては,深層学習用のデ,タストアを参照してください。
数値配列
メモリに収まり,なおかつ拡張などの追加の処理を必要としないデータの場合,イメージのデータセットを数値配列として指定できます。
数値配列のサ。
デタ | 形式 |
---|---|
2次元 | h×w×c×Nの数値配列。ここで,h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。 |
3次元 | h×w×d×c×Nの数値配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数です。N はイメージの数です。 |
表格
デ,タストアまたは数値配列の代わりに,メ,ジを表で指定することもできます。
表で指定した場合,表の各行は観測値に対応します。
イメージ入力の場合,予測子は表の最初の列に格納し,次のいずれかとして指定しなければなりません。
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @文字ベクトルとして指定します。
1行1列のcell配列。ここで,h, w,およびcは,それぞれメ,ジの高さ,幅,およびチャネル数に対応します。
ヒント
複素数値のデ,タをネットワ,クに入力するには,入力層のSplitComplexInputs
オプションが1
でなければなりません。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|表格
複素数のサポ,ト:あり
序列
- - - - - -シ,ケンスデ,タまたは時系列デ,タ
デ,タストア|数値配列のcell配列|数値配列
シ,ケンスデ,タまたは時系列デ,タ。次のいずれかとして指定します。
デタ型 | 説明 | 使用例 | |
---|---|---|---|
デ,タストア | TransformedDatastore |
カスタム変換関数を使用して,基になるデ,タストアから読み取ったデ,タのバッチを変換するデ,タストア |
|
CombinedDatastore |
2 .以上の基になるデタストアからデタを読み取るデタストア |
|
|
カスタムミニバッチデ,タストア | デ,タのミニバッチを返すカスタムデ,タストア | 他のデ,タストアでサポ,トされていない形式のデ,タを使用して予測を行います。 詳細は,カスタムミニバッチデ,タストアの開発を参照してください。 |
|
数値配列またはcell配列 | 数値配列として指定した,単一のシ,ケンス。または数値配列のcell配列として指定した、シーケンスのデータ セット | メモリに収まり,なおかつカスタム変換などの追加の処理を必要としないデータを使用して,予測を行います。 |
デ,タストア
デ,タストアは,シ,ケンスと応答のミニバッチを読み取ります。デ,タストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
以下のデ,タストアは,シ,ケンスデ,タ用の分类
と直接互換性があります。
カスタムミニバッチデ,タストア。詳細は,カスタムミニバッチデ,タストアの開発を参照してください。
関数变换
および结合
を使用して,予測を行うための他の組み込みデ,タストアを使用できます。これらの関数は,デ,タストアから読み取られたデ,タを,分类
に必要な表または单元格配列形式に変換できます。たとえば,ArrayDatastore
オブジェクトおよびTabularTextDatastore
オブジェクトをそれぞれ使用して,インメモリ配列およびCSVファイルから読み取ったデータの変換と結合を行うことができます。
デ,タストアは,表またはcell配列でデ,タを返さなければなりません。カスタムミニバッチデ,タストアは,表を出力しなければなりません。
デ,タストア出力 | 出力の例 |
---|---|
表格 |
数据=读取(ds) data = 4×2表预测 __________________ { 12×50双}{12×50双}{12×50双}{12×50双} |
细胞配列 |
数据=读取(ds) Data = 4×2 cell array {12×50 double} {12×50 double} {12×50 double} {12×50 double} |
予測子の形式は,デ,タのタ,プによって異なります。
デタ | 予測子の形式 |
---|---|
ベクトルシ,ケンス | C行s列の行列。ここで,c はシーケンスの特徴の数、s はシーケンス長です。 |
1次元メジシケンス | H x c x sの配列。ここで,h および c はそれぞれイメージの高さおよびチャネル数に対応します。s はシーケンス長です。 ミニバッチ内の各シ,ケンスは,同じシ,ケンス長でなければなりません。 |
2次元メジシケンス | 高x宽x c x sの配列。ここで,h、w、および c はそれぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 ミニバッチ内の各シ,ケンスは,同じシ,ケンス長でなければなりません。 |
3次元メジシケンス | 高x宽x深x c x sの配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数に対応します。s はシーケンス長です。 ミニバッチ内の各シ,ケンスは,同じシ,ケンス長でなければなりません。 |
予測子が表で返される場合,数値スカラーまたは数値行ベクトルが要素に含まれているか,数値配列が格納された1行1列の细胞配列が要素に含まれていなければなりません。
詳細にいては,深層学習用のデ,タストアを参照してください。
数値配列またはcell配列
メモリに収まり,なおかつカスタム変換などの追加の処理を必要としないデータの場合,単一のシーケンスを数値配列として指定するか,シーケンスのデータセットを数値配列の细胞配列として指定することができます。
细胞配列入力の場合、细胞配列は,数値配列から成るN行1列の细胞配列でなければなりません。ここで,nは観測値の数です。シケンスを表す数値配列のサズと形状は,シケンスデタのタプによって異なります。
入力 | 説明 |
---|---|
ベクトルシ,ケンス | C行s列の行列。ここで,c はシーケンスの特徴の数、s はシーケンス長です。 |
1次元メジシケンス | H×c×sの配列。ここで,h および c はそれぞれイメージの高さおよびチャネル数に対応します。s はシーケンス長です。 |
2次元メジシケンス | H×w×c×sの配列。ここで,h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
3次元メジシケンス | c d w h××××。ここで,h、w、d、および c は、それぞれ 3 次元イメージの高さ、幅、深さ、およびチャネル数に対応します。s はシーケンス長です。 |
ヒント
複素数値のデ,タをネットワ,クに入力するには,入力層のSplitComplexInputs
オプションが1
でなければなりません。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
複素数のサポ,ト:あり
特性
- - - - - -特徴デ,タ
デ,タストア|数値配列|表格
特徴デ,タ。次のいずれかとして指定します。
デタ型 | 説明 | 使用例 | |
---|---|---|---|
デ,タストア | TransformedDatastore |
カスタム変換関数を使用して,基になるデ,タストアから読み取ったデ,タのバッチを変換するデ,タストア |
|
CombinedDatastore |
2 .以上の基になるデタストアからデタを読み取るデタストア |
|
|
カスタムミニバッチデ,タストア | デ,タのミニバッチを返すカスタムデ,タストア | 他のデ,タストアでサポ,トされていない形式のデ,タを使用して予測を行います。 詳細は,カスタムミニバッチデ,タストアの開発を参照してください。 |
|
表格 | 表として指定された特徴デ,タ | 表に格納されたデ,タを使用して予測を行います。 | |
数値配列 | 数値配列として指定された特徴デ,タ | メモリに収まり,なおかつカスタム変換などの追加の処理を必要としないデータを使用して,予測を行います。 |
デ,タストア
デ,タストアは,特徴デ,タと応答のミニバッチを読み取ります。デ,タストアは、データがメモリに収まらない場合や、データに変換を適用したい場合に使用します。
以下のデ,タストアは,特徴デ,タ用の分类
と直接互換性があります。
カスタムミニバッチデ,タストア。詳細は,カスタムミニバッチデ,タストアの開発を参照してください。
関数变换
および结合
を使用して,予測を行うための他の組み込みデ,タストアを使用できます。これらの関数は,デ,タストアから読み取られたデ,タを,分类
に必要な表または单元格配列形式に変換できます。詳細にいては,深層学習用のデ,タストアを参照してください。
複数の入力があるネットワ,クの場合,デ,タストアはTransformedDatastore
オブジェクトまたはCombinedDatastore
オブジェクトでなければなりません。
デ,タストアは,表またはcell配列でデ,タを返さなければなりません。カスタムミニバッチデ,タストアは,表を出力しなければなりません。デ,タストア出力の形式は,ネットワ,クア,キテクチャによって異なります。
ネットワ,クア,キテクチャ | デ,タストア出力 | 出力の例 |
---|---|---|
単入力層 | 少なくとも1の列をもtable cell。最初の列は予測子を指定します。 表の要素は,スカラー,行ベクトルであるか,数値配列が格納された1行1列の细胞配列でなければなりません。 カスタムミニバッチデ,タストアは,表を出力しなければなりません。 |
1 .表: 数据=读取(ds) data = 4×2表预测 __________________ { 24×24×1双}{1双}{24×1双}{24×1双} |
1の入力があるネットワクのcell配列: 数据=读取(ds) Data = 4×1 cell array {24×1 double} {24×1 double} {24×1 double} {24×1 double} |
||
多入力層 | 少なくとも 最初の 入力の順序は,ネットワ,クの |
2の入力があるネットワクのcell配列: 数据=读取(ds) Data = 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} |
予測子は,c行1列の列ベクトルでなければなりません。ここで,cは特徴の数です。
詳細にいては,深層学習用のデ,タストアを参照してください。
表格
メモリに収まり,なおかつカスタム変換などの追加の処理を必要としない特徴データの場合,特徴データと応答を表として指定できます。
表の各行は観測値に対応します。表格の列での予測子の配置は、タスクのタイプによって異なります。
タスク | 予測子 |
---|---|
特徴分類 | 1以上の列でスカラとして指定された特徴。 |
数値配列
メモリに収まり,なおかつカスタム変換などの追加の処理を必要としない特徴データの場合,特徴データを数値配列として指定できます。
数値配列は,n行numFeatures
列の数値配列でなければなりません。ここで,nは観測値の数,numFeatures
は入力デ,タの特徴の数です。
ヒント
複素数値のデ,タをネットワ,クに入力するには,入力層のSplitComplexInputs
オプションが1
でなければなりません。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|表格
複素数のサポ,ト:あり
X1,…,XN
- - - - - -複数の入力をもcell配列
数値配列|细胞配列
複数の入力をもcell配列。
►メ,ジ,シ,ケンス,および特徴の予測子入力の場合,予測子の形式は,图片
、序列
,または特性
のそれぞれの引数の説明に記載されている形式と一致しなければなりません。
複数の入力をもネットワクに学習させる方法を説明する例にいては,イメージデータおよび特徴データにおけるネットワークの学習を参照してください。
複素数値のデ,タをネットワ,クに入力するには,入力層のSplitComplexInputs
オプションが1
でなければなりません。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
複素数のサポ,ト:あり
混合
- - - - - -混在デ,タ
TransformedDatastore
|CombinedDatastore
|カスタムミニバッチデ,タストア
混在デ,タ。次のいずれかとして指定します。
デタ型 | 説明 | 使用例 |
---|---|---|
TransformedDatastore |
カスタム変換関数を使用して,基になるデ,タストアから読み取ったデ,タのバッチを変換するデ,タストア |
|
CombinedDatastore |
2 .以上の基になるデタストアからデタを読み取るデタストア |
|
カスタムミニバッチデ,タストア | デ,タのミニバッチを返すカスタムデ,タストア | 他のデ,タストアでサポ,トされていない形式のデ,タを使用して予測を行います。 詳細は,カスタムミニバッチデ,タストアの開発を参照してください。 |
関数变换
および结合
を使用して,予測を行うための他の組み込みデ,タストアを使用できます。これらの関数は,デ,タストアから読み取られたデ,タを,分类
に必要な表または单元格配列形式に変換できます。詳細にいては,深層学習用のデ,タストアを参照してください。
デ,タストアは,表またはcell配列でデ,タを返さなければなりません。カスタムミニバッチデ,タストアは,表を出力しなければなりません。デ,タストア出力の形式は,ネットワ,クア,キテクチャによって異なります。
デ,タストア出力 | 出力の例 |
---|---|
入力の順序は,ネットワ,クの |
数据=读取(ds) Data = 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} |
►メ,ジ,シ,ケンス,および特徴の予測子入力の場合,予測子の形式は,图片
、序列
,または特性
のそれぞれの引数の説明に記載されている形式と一致しなければなりません。
複数の入力をもネットワクに学習させる方法を説明する例にいては,イメージデータおよび特徴データにおけるネットワークの学習を参照してください。
ヒント
数値配列をデ,タストアに変換するには,arrayDatastore
を使用します。
名前と値の引数
オプションの引数のペアをName1 = Value1,…,以=家
として指定します。ここで,的名字
は引数名で,价值
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021aより前では,コンマを使用して名前と値の各ペアを区切り,的名字
を引用符で囲みます。
例:MiniBatchSize = 256
はミニバッチのサesc escズを256に指定します。
MiniBatchSize
- - - - - -ミニバッチのサ@ @ズ
128
(既定値) |正の整数
予測に使用するミニバッチのサ@ @ズ。正の整数として指定します。ミニバッチのサ@ @ズが大きくなるとより多くのメモリが必要になりますが、予測時間が短縮される可能性があります。
長さが異なるシーケンスで予測を行うと,ミニバッチのサイズが,入力データに追加されるパディングの量に影響し,予測値が変わることがあります。さまざまな値を使用して,ネットワ,クに最適なものを確認してください。ミニバッチのサ电子邮箱ズとパディングのオプションを指定するには,MiniBatchSize
オプションとSequenceLength
オプションをそれぞれ使用します。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
加速度
- - - - - -パフォ,マンスの最適化
“汽车”
(既定値) |“墨西哥人”
|“没有”
パフォ,マンスの最適化。次のいずれかとして指定します。
“汽车”
—入力ネットワクとハドウェアリソスに適した最適化の回数を自動的に適用します。“墨西哥人”
- mex関数をコンパ电子邮箱ルして実行します。このオプションはgpuの使用時にのみ利用できます。GPUを使用するには并行计算工具箱とサポートされているGPUデバイスが必要です。サポトされているデバスにいては,Gpu計算の要件(并行计算工具箱)を参照してください。并行计算工具箱または適切なGPUが利用できない場合,エラーが返されます。“没有”
-すべての高速化を無効にします。
加速度
が“汽车”
の場合,matlab®は互換性のある最適化を複数適用し,mex関数を生成しません。
“汽车”
オプションおよび“墨西哥人”
オプションは,パフォ,マンス上のメリットがありますが,初期実行時間が長くなります。互換性のあるパラメ,タ,を使用した後続の呼び出しは,より高速になります。新しい入力デ,タを使用して関数を複数回呼び出す場合は,パフォ,マンスの最適化を使用してください。
“墨西哥人”
オプションは,関数の呼び出しに使用されたネットワークとパラメーターに基づいて墨西哥人関数を生成し,実行します。複数のmex関数を一度に1のネットワクに関連付けることができます。ネットワークの変数をクリアすると,そのネットワークに関連付けられている墨西哥人関数もクリアされます。
“墨西哥人”
オプションは,単一のgpuの使用時に利用できます。
“墨西哥人”
オプションを使用するには,C / c++コンパイラがインストールされ,GPU编码器™界面深度学习库サポートパッケージがなければなりません。Matlabでアドオンエクスプロラを使用してサポトパッケジをンストルします。設定手順にいては,墨西哥の設定(GPU编码器)を参照してください。GPU编码器は不要です。
“墨西哥人”
オプションは,サポ,トされている層(GPU编码器)ペ,ジにリストされている層を含むネットワ,クをサポ,トしています。ただし,sequenceInputLayer
オブジェクトとfeatureInputLayer
オブジェクトを除きます。
“墨西哥人”
オプションを使用する場合,MATLAB编译器™はネットワ,クの展開をサポ,トしません。
ExecutionEnvironment
- - - - - -ハ,ドウェアリソ,ス
“汽车”
(既定値) |“图形”
|“cpu”
|“multi-gpu”
|“平行”
ハ,ドウェアリソ,ス。次のいずれかとして指定します。
“汽车”
—利用可能な場合はgpuを使用し,そうでない場合はCPUを使用します。“图形”
- gpuを使用します。GPUを使用するには并行计算工具箱とサポートされているGPUデバイスが必要です。サポトされているデバスにいては,Gpu計算の要件(并行计算工具箱)を参照してください。并行计算工具箱または適切なGPUが利用できない場合,エラーが返されます。“cpu”
—CPUを使用します。“multi-gpu”
——既定のクラスタープロファイルに基づいてローカルの並列プールを使用して,1つのマシンで複数のGPUを使用します。現在の並列プールがない場合,使用可能なGPUの数と等しいプールサイズの並列プールが起動されます。“平行”
—既定のクラスタプロファルに基づいてロカルまたはリモトの並列プルを使用します。現在の並列プールがない場合,既定のクラスタープロファイルを使用して1つのプールが起動されます。プルからgpuにアクセスできる場合,固有のgpuを持ワカのみが計算を実行します。プルにgpuがない場合,代わりに使用可能なすべてのCPUワカで計算が実行されます。
さまざまな実行環境をどのような場合に使用するかの詳細は,并行、gpu和云中扩展深度学习を参照してください。
“图形”
、“multi-gpu”
,および“平行”
のオプションを使用するには,并行计算工具箱が必要です。深層学習にgpuを使用するには,サポトされているgpuデバスもなければなりません。サポトされているデバスにいては,Gpu計算の要件(并行计算工具箱)を参照してください。これらのいずれかのオプションの選択時に并行计算工具箱または適切なGPUを利用できない場合,エラーが返されます。
ExecutionEnvironment
を“multi-gpu”
または“平行”
に設定し,再帰層を含むネットワ,クを使用して並列に予測を行うには,SequenceLength
オプションを“最短”
または“最长”
に設定しなければなりません。
状态
パラメタをもカスタム層を含むネットワクは,並列の予測をサポトしていません。
SequenceLength
- - - - - -シ,ケンスのパディングまたは切り捨てを行うオプション
“最长”
(既定値) |“最短”
|正の整数
入力シ,ケンスのパディング,切り捨て,または分割を行うオプション。次のいずれかに指定します。
“最长”
—各ミニバッチで,最長のシケンスと同じ長さになるようにシケンスのパディングを行います。このオプションを使用するとデータは破棄されませんが,パディングによってネットワークにノイズが生じることがあります。“最短”
—各ミニバッチで,最短のシケンスと同じ長さになるようにシケンスの切り捨てを行います。このオプションを使用するとパディングは追加されませんが,デ,タが破棄されます。正の整数——各ミニバッチについて,そのミニバッチ内で最も長いシーケンスに合わせてシーケンスをパディングした後,指定した長さのより小さいシーケンスに分割します。分割が発生すると,追加のミニバッチが作成されます。指定したシーケンス長によってデータのシーケンスを均等に分割できない場合,最後のシーケンスを含むミニバッチの長さは指定した長さより短くなります。シ,ケンス全体がメモリに収まらない場合は,このオプションを使用します。または,
MiniBatchSize
オプションをより小さい値に設定して,ミニバッチごとのシ,ケンス数を減らしてみます。
入力シ,ケンスのパディング,切り捨て,および分割の効果の詳細は,シ,ケンスのパディング,切り捨て,および分割を参照してください。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
SequencePaddingDirection
- - - - - -パディングまたは切り捨ての方向
“正确”
(既定値) |“左”
パディングまたは切り捨ての方向。次のいずれかに指定します。
“正确”
—シケンスの右側に対してパディングまたは切り捨てを行います。シーケンスは同じタイムステップで始まり,シーケンスの末尾に対して切り捨てまたはパディングの追加が行われます。“左”
—シケンスの左側に対してパディングまたは切り捨てを行います。シーケンスが同じタイムステップで終わるように,シーケンスの先頭に対して切り捨てまたはパディングの追加が行われます。
再帰層は1タOutputMode
プロパティが“最后一次”
の場合,最後のタ。シ,ケンスデ,タの左側に対してパディングまたは切り捨てを行うには,SequencePaddingDirection
オプションを“左”
に設定します。
序列对序列ネットワ,クの場合(各再帰層に,いてOutputMode
プロパティが“序列”
である場合),最初のタイムステップでパティングを行うと,それ以前のタイムステップの予測に悪影響を与える可能性があります。シ,ケンスの右側に対してパディングまたは切り捨てを行うには,SequencePaddingDirection
オプションを“正确”
に設定します。
入力シ,ケンスのパディング,切り捨て,および分割の効果の詳細は,シ,ケンスのパディング,切り捨て,および分割を参照してください。
SequencePaddingValue
- - - - - -シ,ケンスをパディングする値
0
(既定値) |スカラ
入力シ,ケンスをパディングする値。スカラ,として指定します。
このオプションは,SequenceLength
が“最长”
または正の整数の場合にのみ有効です。ネットワ,ク全体にエラ,が伝播される可能性があるため,南
でシ,ケンスをパディングしないでください。
デ,タ型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
出力引数
Y
-予測クラスラベル
categoryベクトル| categoryベクトルのcell配列
予測クラスラベル。直言ベクトル,または直言ベクトルの细胞配列として返されます。Y
の形式は,タスクのタ。
次の表は,分類タスクの形式にいて説明しています。
タスク | 形式 |
---|---|
メ,ジ分類または特徴分類 | ラベルのN行1列の分类ベクトル。Nは観測値の数です。 |
从序列到标签分類 | |
序列对序列分類 | ラベルのカテゴリカルシケンスのN行1列のcell配列。Nは観測値の数です。 観測値が1; |
分数
-予測クラススコア
行列|行列のcell配列
予測スコアまたは応答。行列,または行列の单元格配列として返されます。分数
の形式は,タスクのタ。
次の表は,分数
の形式にいて説明しています。
タスク | 形式 |
---|---|
メ,ジ分類 | N行k列の行列。Nは観測値の数,kはクラスの数です。 |
从序列到标签分類 | |
特徴分類 | |
序列对序列分類 | 行列のN行1列のcell配列。Nは観測値の数です。シ,ケンスはk行の行列で,kはクラスの数です。 |
観測値が1;序列
を行列にすることができます。この場合,分数
は,予測クラススコアの行列です。
分類スコアを調べる例にいては,深層学習を使用したWebカメラメジの分類を参照してください。
アルゴリズム
関数trainNetwork
を使用してネットワ,クに学習させる場合や,DAGNetwork
オブジェクトおよびSeriesNetwork
オブジェクトと共に予測関数または検証関数を使用する場合,ソフトウェアは単精度浮動小数点演算を使用して,これらの計算を実行します。学習,予測,および検証のための関数には,trainNetwork
、预测
、分类
,および激活
が含まれます。CPUとgpuの両方を使用してネットワ,クに学習させる場合,単精度演算が使用されます。
代替方法
複数の出力層をも関数预测
を使用し,ReturnCategorical
オプションを1
(正确)に設定します。
予測された分類スコアを計算するために,関数预测
を使用することもできます。
ネットワ,ク層から活性化を計算するには,関数激活
を使用します。
LSTMネットワ,クなどの再帰型ネットワ,クでは,classifyAndUpdateState
およびpredictAndUpdateState
を使用してネットワ,クの状態の予測および更新を実行できます。
参照
[1]工藤,美一,富山俊,新保真。“使用穿过区域的多维曲线分类”模式识别信20,没有。11-13(1999年11月):1103-11。https://doi.org/10.1016/s0167 - 8655 (99) 00077 - x.
[2] UCI机器学习库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels.
拡張機能
C/ c++コ,ド生成
MATLAB®Coder™を使用してCおよびc++コドを生成します。
使用上の注意および制限:
c++コ,ド生成は,以下の構文をサポ,トします。
[Y,分数]=分类(网络,图像)
(ここで,图片
は数値配列)[Y,分数]=分类(净,序列)
(ここで,序列
はcell配列)[Y,分数]=分类(网,特征)
(ここで,特性
は数値配列)[Y,scores] = category (__,Name=Value)
(前述の構文のいずれかを使用)
回帰ネットワ、クおよび複数の出力があるネットワ、クに、いては、関数
分类
のc++コド生成はサポトされていません。ベクトルシ,ケンス入力の場合,特徴の数はコ,ド生成時に定数でなければなりません。シケンスの長さは可変サズにできます。
イメージシーケンス入力の場合,高さ,幅,およびチャネル数は,コード生成時に定数でなければなりません。
コ,ド生成では,名前と値のペアの引数
MiniBatchSize
、SequenceLength
、SequencePaddingDirection
,およびSequencePaddingValue
のみがサポ,トされています。すべての名前と値のペアはコンパ@ @ル時の定数でなければなりません。コ,ド生成では,名前と値のペア
SequenceLength
のオプションとして“最长”
と“最短”
のみがサポ,トされています。GCC c / c++コンパラのバジョン8.2以降を使用している場合,
-Wstringop-overflow
の警告が表示されることがあります。英特尔®Mkl-dnnタ,ゲット用のコ,ド生成では,
SequenceLength =“最长”
、SequencePaddingDirection =“左”
,およびSequencePaddingValue = 0
の名前と値の引数の組み合わせがサポ,トされません。
Gpuコ,ド生成
GPU编码器™を使用してNVIDIA GPU®のためのCUDA®コードを生成します。
使用上の注意および制限:
Gpuコ,ド生成は,以下の構文をサポ,トします。
Y =分类(网络,图像)
(ここで,图片
は数値配列)Y =分类(净,序列)
(ここで,序列
はcell配列または数値配列)Y =分类(网络,特征)
(ここで,特性
は数値配列)[Y,分数]=分类(__)
(前述の構文のいずれかを使用)[Y,scores] = category (__,Name=Value)
(前述の構文のいずれかを使用)
回帰ネットワ、クおよび複数の出力があるネットワ、クに、いては、関数
分类
のgpuコ,ド生成はサポ,トされていません。Gpuコ,ド生成では,関数
分类
へのgpuArray
入力はサポ,トされません。cuDNNラブラリはベクトルおよび2次元メジシケンスをサポトします。TensorRTラブラリはベクトル入力シケンスのみをサポトします。手臂®
计算库
用于GPUは再帰型ネットワ,クをサポ,トしていません。ベクトルシ,ケンス入力の場合,特徴の数はコ,ド生成時に定数でなければなりません。シケンスの長さは可変サズにできます。
イメージシーケンス入力の場合,高さ,幅,およびチャネル数は,コード生成時に定数でなければなりません。
コ,ド生成では,名前と値のペアの引数
MiniBatchSize
、SequenceLength
、SequencePaddingDirection
,およびSequencePaddingValue
のみがサポ,トされています。すべての名前と値のペアはコンパ@ @ル時の定数でなければなりません。コ,ド生成では,名前と値のペア
SequenceLength
のオプションとして“最长”
と“最短”
のみがサポ,トされています。関数
分类
のgpuコド生成では,半精度浮動小数点デタ型として定義されている入力がサポトされます。詳細にいては,一半
(GPU编码器)を参照してください。GCC c / c++コンパラのバジョン8.2以降を使用している場合,
-Wstringop-overflow
の警告が表示されることがあります。
自動並列サポ,ト
并行计算工具箱™を使用して自動的に並列計算を実行することで,コードを高速化します。
計算を並列実行するには,ExecutionEnvironment
オプションを“multi-gpu”
または“平行”
に設定します。
詳細は,并行、gpu和云中扩展深度学习を参照してください。
Gpu配列
并行计算工具箱™を使用してグラフィックス処理装置(GPU)上で実行することにより,コードを高速化します。
入力デ,タが以下の場合,
ExecutionEnvironment
オプションは“汽车”
または“图形”
でなければなりません。gpuArray
gpuArray
オブジェクトを含むcell配列gpuArray
オブジェクトを含む表gpuArray
オブジェクトを含むcell配列を出力するデ,タストアgpuArray
オブジェクトを含む表を出力するデ,タストア
詳細にいては,Gpuでのmatlab関数の実行(并行计算工具箱)を参照してください。
バ,ジョン履歴
R2016aで導入R2022b:SequenceLength
オプションを整数として指定した場合,予測関数は,分割を行う前に最も長いシーケンスに合わせてミニバッチをパディングする
R2022b以降,関数预测
、分类
、predictAndUpdateState
、classifyAndUpdateState
,および激活
を使用してシ,ケンスデ,タで予測を行うときに,SequenceLength
オプションが整数である場合,各ミニバッチ内で最も長いシーケンスに合わせてシーケンスがパディングされた後,指定したシーケンス長でシーケンスが分割されてミニバッチが作成されます。SequenceLength
によってミニバッチのシ,ケンスを均等に分割できない場合,最後に分割されたミニバッチの長さはSequenceLength
より短くなります。この動作によって,パディング値しか含まれないタイムステップが予測に影響するのを防ぐことができます。
以前のリリ,スでは,SequenceLength
の倍数に最も近く,かつミニバッチ長以上の長さとなるように,シーケンスのミニバッチをパディングしてから,データが分割されていました。この動作を再現するには,ミニバッチの長さがSequenceLength
の適切な倍数となるように,入力デ,タを手動でパディングします。sequence-to-sequenceのワークフローでは,さらに,パディング値に対応するタイムステップを出力から手動で削除しなければならない場合があります。
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。