。
深层学习ネットワーク层の活性化の计算
1つのCPUまたは1つのGPUで深层学习ネットワーク层の活性化を计算できます。GPUを使用するには,并行计算工具箱™および计算能力3.0以上のCUDA®対応nvidia.®GPUが必要です。名称と値のペアペアの数execultenvironment.
をを用ししてハードウェア要件要件指定ししし指定しし
この例では,事前学习済みの畳み込みニューラルネットワーク习习済みイメージの徴をし,これらの特种を使してイメージををささし说说说ししししししししししますますしますしますしますますますますますししますますしししネットワークの表现表现力量をできる最も简而言之ののからない方。たとえば,抽出した特征に対してfitcecoc
(统计和机器学习工具箱™)を使用してサポートベクターマシン(SVM)に学习させることができます。特徴抽出が必要とするものはデータを一巡する1つのパスのみであるため,ネットワークの学习を加速するためのGPUがない场合,これは适切な开始点となります。
データの読み込み
サンプルイメージを解冻してイメージデータストアとして読み込みます。imageageAtastore.
は,フォルダー名に基づいてイメージに自动的にラベルを付け,データをimageageAtastore.
オブジェクトとして格纳します。イメージデータストアを使用すると,メモリに收まらないデータを含む大きなイメージデータを格纳できます。データを70%の学习データと30%のテストデータに分割します。
解压('merchdata.zip');imds = imageageatastore('merchdata'那......'insertumbfolders',真实,......'labelsource'那'foldernames');[IMDStrain,IMDSTEST] = SpliteachLabel(IMDS,0.7,“随机”);
このとき,この非常に小さなデータセットには,55个の学习イメージと20个の検证イメージが格纳されています。いくつかのサンプルイメージを表示します。
numImagesTrain = numel(imdsTrain.Labels);IDX = randperm(numImagesTrain,16);对于I = 1:16 I {I} = readimage(imdsTrain,IDX(I));结束图imshow(imtile(i))
事前学习済みのネットワークの読み込み
事前学习ネットワークののネットワークネットワーク読み込みます.deep学习工具箱模型对于AlexNet网络サポートパッケージがインストールされていない场合,ダウンロード用リンクが表示されます.AlexNetは,100万枚を超えるイメージについて学习済みであり,イメージを千个のオブジェクトカテゴリに分类できます。たとえば,キーボード,マウス,铅笔,多くの动物などです。结果として,このモデルは広范囲のイメージに対する豊富な特徴表现を学习しています。
net = alexnet;
ネットワークアーキテクチャを表示します。ネットワークには5つの畳み込み层と3つの全结合层があります。
Net.Layers.
ANS = 25×层阵列层:1 '数据' 图像输入227x227x3图像与 'zerocenter' 正常化2 'CONV1' 卷积96个11x11x3卷积与步幅[4 4]和填充[0 0 0 0] 3 'relu1' RELU RELU 4“NORM1”跨渠道正常化交叉通道,每个元件5个频道5“POOL1”最大池3x3的最大蓄留与步幅[2 2]和填充正常化[0 0 0 0] 6“CONV2”分组卷积2组128个5x5x48卷积用步幅[1 1]和填充[2 2 2 2] 7 'relu2' RELU RELU 8 'NORM2' 跨渠道正常化交叉通道,每个元件5个通道9 'POOL2' 最大池3x3的最大蓄留与步幅正常化[2 2]和填充[0 0 0 0] 10 'conv3' 卷积384个3x3x256卷积步幅[1 1]和填充[1 1 1 1] 11 'relu3' RELU RELU 12 'CONV4' 分组卷积2组192个3x3x192卷积与步幅[1 1]和填充[1 1 1 1] 13 'relu4' RELU RELU 14 'conv5' 分组卷积2组128个3x3x192卷积与步幅[1 1]和填充[1 1 1 1] 15 'relu5' RELU RELU 16 'pool5' 最大池3x3的步幅[2 2]和填充[0 0 0 0] 17 'FC6' 完全连接4096最大池完全连接层18 'relu6' RELU RELU 19 'drop6' 降50%漏失20 'FC7' 完全连接4096完全连接层21 'relu7' RELU RELU 22 'drop7' 降50%漏失23 'FC8' 完全连接1000完全连接层24“的概率”使用SoftMax SOFTMAX 25“输出”分类输出crossentropyex与“丁鲷”和999的其他类
最初の层であるイメージ入力层には,サイズが227 X 227×3の入力イメージが必要です。ここで,3はカラーチャネルの数です。
InputSize = Net.Layers(1).InputSize
inputSize =1×3227 227 3
イメージの特徴の抽出
ネットワークは,入力イメージの阶层を构筑ます。深い深いにはます构筑层は,初ののの低レベル特徴を使しし构筑たたたた,高度レベルのが含まれ。学习イメージとイメージイメージが。特价表现を取得するに,全全合'FC7'
で激活
を使用します。イメージの低レベルの表现を取得するには,ネットワークの初期の层を使用します。
ネットワークにはサイズが227 X 227×3の入力イメージが必要ですが,イメージデータストアにあるイメージのサイズは异なります。学习およびテストイメージのサイズをネットワークへの入力前に自动的に変更するには,拡张イメージデータストアを作成して,目的のイメージサイズを指定し,これらのデータストアを激活
のの力量引ますますし。
augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain);augimdsTest = augmentedImageDatastore(inputSize(1:2),imdsTest);层='FC7';featuresTrain =激活(净,augimdsTrain,层'OutputAs'那'行');featuresTest =激活(净,augimdsTest,层'OutputAs'那'行');
学习データおよびテストデータからクラスラベルを抽出します。
ytrain = imdstrain.labels;ytest = imdstest.labels;
イメージ分类器材ののあては
学习イメージから抽出されれ特徴を予测子位数として使用し,fitcecoc
(统计和机器学习工具箱)を使用してマルチクラスサポートベクターマシン(SVM)をあてはめます。
MDL = fitcecoc(featuresTrain,YTrain);
テストイメージの分类
学习済みのsvmモデルとテストイメージから抽出れた特色を使て,テストイメージを分享します。
Ypred =预测(MDL,Featustestest);
4个のサンプルテストイメージと,その予测ラベルを表示します。
IDX = [1 5 10 15];figure对于I = 1:numel(IDX)副区(2,2,i)的I = readimage(imdsTest,IDX(I));标记= YPred(IDX(I));imshow(I)标题(标签)结束
テストセットに対する分类精密をを计算しし度とは,ネットワークネットワーク予测が正式行为れるラベルのの割。
精度=均值(Ypred == ytest)
精度= 1
このSVMは高い精度を示しています。特徴抽出を使用しても十分な精度が得られない场合,代わりに転移学习を试してください。
净
-学习済みネットワーク系列网络
オブジェクト|Dagnetwork.
オブジェクト学习済みネットワーク。系列网络
またはDagnetwork.
オブジェクトとして指定します。事前学习済みのネットワークネットワークインポートインポートするするするするするするする(たとえば,关有数googlenet.
を使用する),またはTrainnetwork.
を使用して独自のネットワークに学习させることによって,学习済みネットワークを取得できます。
IMDS.
-イメージデータストアimageageAtastore.
オブジェクトイメージデータストア。imageageAtastore.
オブジェクトとして指定します。
imageageAtastore.
を使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。イメージの読み取りにカスタム关数を使用する场合,imageageAtastore.
は事前取得を行いません。
ヒント
イメージのサイズ変更を含む深层学习用のイメージの前を效率的に行augmentedImageDatastore
を使用します。
imageageAtastore.
のreadFcn
オプションは通讯,速度が大厦に低する,前致理性またはサイズ変更使しでください。
DS.
-データストアメモリ外のデータおよびおよびのデータストア。データデータは,表または细胞配列でを返さ返さ返さ返さを返さ返さ返さを。
ネットワークアーキテクチャ | データストア出力 | 出力の例 |
---|---|---|
単一入力 | 表または细胞配列。最初最初の列はは予测をししししししししししししし 表の要素は,スカラー,行ベクトルであるか,数値配列が格纳された1行1列の细胞配列でなければなりません。 カスタムデータストアははを力しなければませませんんんんん。 |
数据=读(DS) 数据= 4×1表预测器__________________ {224×224×3 double} {224×224×3双} {224×224×3双} {224×224×3双} |
数据=读(DS) data = 4×1 cell array {224×224×3 double} {224×224×3 double} {224×224×3双} {224×224×3双} |
||
复数入力 | 少なくとも 最初の 入力のの顺序,ネットワークネットワーク |
数据=读(DS) data = 4×2 cell array {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3双} {224×224×3双} {128×128×3双} {224×224×3双} {128×128×3双} |
予测子の形式は,データのタイプによって异なり。
データ | 予测子の形式 |
---|---|
2次元イメージ | H x W X Cの数据配列。ここここ,h,w,およびcは,それぞれイメージの高,幅,およびチャネル数。 |
3次元イメージ | H x W X D X Cの数量配列。ここここ,H,W,D,およびCは,それぞれイメージの高,幅,深さ,およびおよび数。 |
ベクトルシーケンス | Ç行小号列の行列。ここで,Cはシーケンスの特徴の数,Sはシーケンス长です。 |
2次元イメージシーケンス | 高×宽×Ç个Sの配列。ここで,H,W,およびÇはそれぞれイメージの高さ,幅,およびチャネル数に対応します.Sはシーケンス长です。 ミニバッチ内の各シーケンスは,同じシーケンス长でなければなりません。 |
3次元イメージシーケンス | 高×宽×d XÇ个Sの配列。ここで,H,W,d,およびÇは,それぞれイメージの高さ,幅,深さ,およびチャネル数に対応します.Sはシーケンス长です。 ミニバッチ内の各シーケンスは,同じシーケンス长でなければなりません。 |
特兰 | Ç行1列の列ベクトル.Cは特徴の数です。 |
详细については,深层学习用のデータストアを参照してください。
X.
-イメージデータまたは特徴データイメージデータまたは特徴データ。数値配列として指定します。配列のサイズは入力のタイプによって以下のように异なります。
入力 | 说明 |
---|---|
2次元イメージ | 高×宽×Ç×N个の数値配列。ここで,H,W,およびÇは,それぞれイメージの高さ,幅,およびチャネル数です.Nはイメージの数です。 |
3次元イメージ | 高×宽×d XÇ×N个の数値配列。ここで,H,W,d,およびÇは,それぞれイメージの高さ,幅,深さ,およびチャネル数です.Nはイメージの数です。 |
特兰 | n行numFeatures 列の数値配列。ここで,Nは観测値の数,numFeatures はは力データの特价のの。 |
配列に南
が含まれる场合,ネットワーク全体に伝播されます。
复数のの力があるネットワークの合,数码の配列X1
,......,XN.
を指定できます。ここで,N
はネットワークネットワーク力の数号,入力xi.
はネットワーク入力net.InputNames(ⅰ)
に対応します。
イメージ入力の场合,'OutputAs'
オプションが'频道'
の场合,入力データX.
,X.
序列
-シーケンスデータまたは时系列データシーケンスデータまたは时系列データ。数码値のn行1列の细胞配列,1つのシーケンスを表す数码配列,またはデータストアとしてします。ここここ,nは観测値の。
电池配配力または数码配配力の料,シーケンスが含ま含ま数码配列のは,データのタイプによって异なり。
入力 | 说明 |
---|---|
ベクトルシーケンス | Ç行小号列の行列。ここで,Cはシーケンスの特徴の数,Sはシーケンス长です。 |
2次元イメージシーケンス | h x w x c x sの配列。ここここ,h,w,およびcは,それぞれイメージの高,幅,およびチャネル数にし。 |
3次元イメージシーケンス | 高×宽×d XÇX秒。ここで,H,W,d,およびÇは,それぞれ3次元イメージの高さ,幅,深さ,およびチャネル数に対応します.Sはシーケンス长です。 |
データストアストア力の料,データストアはシーケンスの细胞配列,またはまたは最初の列にシーケンスがれるれるれるデータデータををばませませシーケンスシーケンスませませんませませんんんんはんはははませませはののののののののののののににのばばません。
TBL.
-イメージデータまたは特点データのの表格
イメージデータまたは特价データのののの各行は値に対応します。
表の列での予测子の配置は,入力データのタイプによって异なります。
入力 | 予测子 |
---|---|
イメージデータ |
単一列で子ををします。 |
特徴データ | 数量スカラー。 表の |
この源は,単一の入力のみがネットワークををします。
データ型:表格
层
-活性化の抽出元の层活性化学の元の层。
系列网络
オブジェクトの活性化はは,层层数码インデックスを使,层层名前にする字ベクトルとしてを指定ますするしますますますますますますますますますますますますますし。
Dagnetwork.
オブジェクトの活性化を计算するには,层の名前に対応する文字ベクトルとして层を指定します。层に复数の出力がある场合,层と出力を,层の名前,その后に文字 “/”,层出力の名前と続けて指定します。つまり,层
は'layername / outputname'
の形式を取ります。
例:3.
例:'conv1'
例:'mpool / out'
オプションの数名称,价值
のコンマ区切りペアを指定します。名称
は数名で,价值
は対応する値です。名称
はは用符符で囲まなけれなけれなりませませませなりませませname1,value1,...,namen,valuen
ののに,复数の名前とのペアののを,任意の顺番で指定でき。
激活(净,X,层, 'OutputAs', '行')
'OutputAs'
-出力活性化形式'频道'
(既定値)|'行'
|'列'
'minibatchsize'
-ミニバッチのサイズ予测に使使バッチのサイズサイズ。ミニバッチのサイズとして指定ますますのサイズが大厦なると多くのメモリがにますが,予测时空
例:'MiniBatchSize',256
'sequencelength'
-入力シーケンスシーケンスの,切り舍切り舍,または分享を行オプション“最长”
(既定値)|“最短”
|正の数入切り舍,または分别をオプション。次のいずれか指定します。
“最长”
- 各ミニバッチで,最长のシーケンスと同じ长さになるようにシーケンスのパディングを行いますこのオプションを使用するとデータは破弃されませんが,パディングによってネットワークにノイズが生じることがあります。
“最短”
- 各ミニバッチで,最短のシーケンスと同じ长さになるようにシーケンスの切り舍てを行いますこのオプションを使用するとパディングは追加されませんが,データが破弃されます。
正の整数 - 各ミニバッチで,ミニバッチで最长のシーケンスより大きい,指定长の最も近い倍数になるようにシーケンスのパディングを行った后,それらのシーケンスを指定长のより小さなシーケンスに分割します分割が発生すると,追加のミニバッチが作成されます。シーケンス全体がメモリに收まらない场合は,このオプションを使用します。または,'minibatchsize'
オプションオプションを小さい値设定して,ミニバッチごとのシーケンス数号减らしみます。
入力シーケンスシーケンスの,切り舍切り舍,および分享の效果详细は,シーケンスシーケンスの,切り舍切り舍,および分享を参照してください。
例:'SequenceLength', '最短'
'SequencePaddingValue'
-入力シーケンスをパディングする値入力シーケンスをパディングする値。スカラーとして指定します。このオプションは,SequenceLength
が“最长”
または正の数ののにのみ有效。ネットワーク全体にが伝播される可以南
でシーケンスをパディングしないでください。
例:'sequencdpaddingsvalue', - 1
'SequencePaddingDirection'
-パディングパディングまたは切り舍ての'对'
(既定値)|“左”
パディングパディングまたは切り舍ての向ののいずれしししし。
'对'
- シーケンスシーケンスの右侧に対してパディングまたはてていいいシーケンスは同じタイムステップで始まり始まりのの末尾に対して切り舍てまたはの追追がわわわわれ
“左”
- シーケンスの左侧に対してパディングまたはてを行いますが同じタイムで终わるに,シーケンスの先头に対して切り舍またはパディングパディングパディング追パディング追がわれパディングパディングパディング
LSTM层は1タイムステップずつシーケンスデータデータをする,层のOutputMode.
プロパティが'最后'
の场合,最后のタイムステップでパディングを行うと层の出力に悪影响を与える可能性があります。シーケンスデータの左侧に対してパディングまたは切り舍てを行うには,'SequencePaddingDirection'
オプションを“左”
に设定します。
序列到序列ネットワークの场合(各LSTM层层OutputMode.
プロパティが'序列'
である场合),最初のタイムステップでパティングを行うと,それ以前のタイムステップの予测に悪影响を与える可能性があります。シーケンスの右侧に対してパディングまたは切り舍てを行うには,'SequencePaddingDirection'
オプションを'对'
に设定します。
入力シーケンスシーケンスの,切り舍切り舍,および分享の效果详细は,シーケンスシーケンスの,切り舍切り舍,および分享を参照してください。
'加速'
-パフォーマンスパフォーマンスの最适化'auto'
(既定値)|'mex'
|'没有'
パフォーマンスパフォーマンス最适化。'加速'
と次のいずれかで构成されるコンマ区切りのペアとして指定します。
'auto'
- 入力ネットワークとハードウェアリソースに适した最适化の回数を自动的に适用します。
'mex'
- MEX关数をコンパイルして実行しますこのオプションはGPUの使用时にのみ利用できます。GPUを使用するには,并行计算工具箱および计算能力3.0以上のCUDA対応NVIDIA GPUが必要です。并行计算工具箱またはまたは适切gpuが利用できないない合,エラーが返され。
'没有'
- すべての高层を无效しします。
既定のオプションは'auto'
です。'auto'
が指定されてている合,matlab®は互换性のある最适化を复数适用します。'auto'
オプションを使使使する合,MATLABはMEX关节生成しん。
'加速'
オプション'auto'
および'mex'
をを使する,パフォーマンス上のメリットが得が,初初実行时がなりなりますあるパラメーターを使し后続のは,より高度にはは。新しい入にますは。新しいしいになります。复パフォーマンス回呼び出すは,パフォーマンスパフォーマンスの最适をを使使。
'mex'
オプションは,关数の呼び出しに使用されたネットワークとパラメーターに基づいてMEX关数を生成し,実行します。复数のMEX关数を一度に1つのネットワークに关连付けることができます。ネットワークの変数をクリアすると,そのネットワークに关连付けられているMEX关数もクリアされます。
'mex'
オプションは,GPUの使用时に利用できます.c / c ++コンパイラとgpu编码器™深度学习图书馆接口サポートサポートパッケージがインストールささていなければなりませんmmででアドオンエクスプローラーをを使てサポートパッケージををインストールます。设定设定手顺について,MEXの设定(GPU编码器)を参照してください.gpu编码器は不错です。
'mex'
オプションではサポートされていない层があります。サポートされている层の一覧については,サポートされている层(GPU编码器)を参照してください。sequenceInputlayer.
をを含む再帰型ニューラル(RNN)ははされていません。
'mex'
'mex'
オプションの使用时に,Matlab Compiler™をを使してネットワークを配するすることできませんん。
例:'加速','mex'
'executionenvironment'
-ハードウェアリソース'auto'
(既定値)|'GPU'
|'cpu'
ハードウェアリソース。'executionenvironment'
と次のいずれかで构成されるコンマ区切りのペアとして指定します。
'auto'
- 利用可能な场合はGPUを使用し,そうでない场合はCPUを使用します。
'GPU'
- GPUを使使用します。GPUを使用するには,并行计算工具箱および计算能力3.0以上のCUDA対応NVIDIA GPUが必要です。并行计算工具箱またはまたは适切gpuが利用できないない合,エラーが返され。
'cpu'
- CPUを使使用しし。
例:'执行环境', 'CPU'
act
- ネットワーク层からの活性化ネットワーク层からの活性化。数値配列,または数値配列の细胞配列として返されます。act
の形式は,入力データの,层出力のタイプ,および'OutputAs'
オプションによって异なります。
层がイメージまたは折りたたみたたみデータをを力する料,act
は数量配列。
'OutputAs' |
act |
---|---|
'频道' |
2次元イメージ出力の场合, 3次元イメージ出力の合, 折りたたみ2次元イメージシーケンス出力の场合, 折りたたみ3次元イメージシーケンスシーケンス力の料, |
'行' |
2次元および3次元イメージ出力の场合, 折りたたみ2次元および3次元イメージシーケンスシーケンス力の合, |
'列' |
2次元および3次元イメージ出力の场合, 折りたたみ2次元および3次元イメージシーケンスシーケンス力の合, |
层
にシーケンス出力(たとえば,出力モードが'序列'
のLSTM层)がある场合,act
は细胞配列になります。この场合,'OutputAs'
オプションは'频道'
でなければなりません。
'OutputAs' |
act |
---|---|
'频道' |
ベクトルベクトルシーケンス力の合成, 2次元イメージシーケンスシーケンス力の合成, 3次元イメージシーケンスシーケンス力の合书, このこの合, |
层
ががシーケンスの単単のタイムステップを力するする合(たとえば,出力モードが'最后'
のLSTM层),act
は数値配列になります。
'OutputAs' |
act |
---|---|
'频道' |
ベクトルデータを含む単一のタイムステップの场合, 2次元次元イメージデータをを含む単のタイムステップステップの场, 3次元イメージデータを含む単一のタイムステップの场合, |
'行' |
n行m列の行。ここここ,nは観测値の数,m は选択した层からの出力要素の数です。この场合,法案(我,:) には我 番目番目のシーケンスの活性活性が含まれ |
'列' |
米行Ñ列の行列。ここで,米は选択した层からの出力要素の数,正は観测値の数です。この场合,法案(:,i) には我 番目のイメージの活性化が含まれます。 |
深度学习工具箱™ににれる深层学习习学习,予测,検证検证のの关联,単精密动送小数演算を习习てて実実。Trainnetwork.
那预测
那分类
那激活
などがあります.cpuとgpuの両両使してに学习习さ场场场场场ます。
[1] M. Kudo,J. Toyama和M. Shimbo。“使用过度区域的多维曲线分类。”模式识别字母。卷。20,第11-13页,第1103-1111页。
[2] UCI机器学习存储库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/japanese+vowels.
使用上の注意およびおよび限额:
入力X.
を可変サイズににことはできませませサイズは生成时に固定なければなりません。
引层
は定数でなければなりません。
名称と値のペアペアの数'OutputAs'
のみのみがサポートされれ値は'频道'
でなければなりません。
深层学习ニューラルネットワークネットワークのの生成の详细,MATLAB编码器をを用品しした习生成のワークフロー(MATLAB编码器)を参照してください。
使用上の注意およびおよび限额:
GPUコード生成は,以下の构文をサポートし。
动作=激活(网络,x,图层)
ACT =激活(净,序列,层)
ACT =激活(__,名称,值)
入力X.
は可サイズにでくださいくださいでののんにににににませませませませませににににににに固定ませませませませ
cuDNNライブラリはベクトルおよび2次元イメージシーケンスをサポートします.TensorRTライブラリはベクトル入力シーケンスのみをサポートします.ARM®计算库
对于GPUは再帰型ネットワークをサポートしていません。
ベクトルシーケンス入力の场合,特徴の数はコード生成时に定数でなければなりません。シーケンスの长さは可変サイズにできます。
イメージイメージシーケンス力の综合,高さ,幅,およびおよび数は,コード生成时ににでばなりん。
层
引生成时,コード生成时にになけれなりません。
コード生成では,名前と値のペアの引数'OutputAs'
那'minibatchsize'
那'sequencelength'
那'SequencePaddingDirection'
,および'SequencePaddingValue'
のみがサポートさますます。すべての名前と値のコンパイルコンパイル时ののでばなりませんんばなりません。
出力の活性化の形式は'频道'
でなければなりません。
コード生成でで,名称と値のペア'sequencelength'
のオプションとして“最长”
と“最短”
のみのみがサポートさされていい
关节激活
のGPUコード生成では,半精度浮动小数点データ型として定义されている入力がサポートされます。详细については,一半
(GPU编码器)を参照してください。
次のmatlabコマンドコマンドにに対応するリンクがクリックされまし
コマンドをmatlabコマンドコマンドウィンドウにににに実行してください.webブラウザーはmatlabコマンドをサポートしていませんんんん。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。