学習済みモデルのゆくえについて

alexnetで転写学習を行ったのですが、ネットワークモデルがどこに保存されているのかわからず困っています。 教えて下さい。

 Risposta accettata

Hirokazu Tanaka
Hirokazu Tanaka il 2 Ago 2018

3 voti

実際に実行された内容(コード)をみないと何とも言えませんが、どういった状況でしょうか?
例1:学習後のネットワークを mat ファイルに保存などの作業を行わず MATLAB を終了した場合: 学習結果は消えてしまっています。
例2:trainNetwork 関数を出力なしで実行した場合:実行直後は ans という変数名として存在するはずですが、その後上書きされている可能性はあります。

6 Commenti

chihiro sasaya
chihiro sasaya il 3 Ago 2018
Modificato: michio il 3 Ago 2018
チュートリアルの構文をなぞり実行しました。
imds = imageDatastore('MerchData', ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');
net = alexnet;
layersTransfer = net.Layers(1:end-3);
numClasses = numel(categories(imdsTrain.Labels));
layers = [
layersTransfer
fullyConnectedLayer(numClasses,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)
softmaxLayer
classificationLayer];
pixelRange = [-30 30];
imageAugmenter = imageDataAugmenter( ...
'RandXReflection',true, ...
'RandXTranslation',pixelRange, ...
'RandYTranslation',pixelRange);
augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain, ...
'DataAugmentation',imageAugmenter);
augimdsValidation = augmentedImageDatastore(inputSize(1:2),imdsValidation);
options = trainingOptions('sgdm', ...
'MiniBatchSize',10, ...
'MaxEpochs',6, ...
'InitialLearnRate',1e-4, ...
'ValidationData',augimdsValidation, ...
'ValidationFrequency',3, ...
'ValidationPatience',Inf, ...
'Verbose',false, ...
'Plots','training-progress');
netTransfer = trainNetwork(augimdsTrain,layers,options);
YPred = predict(classifier,featuresTest);
idx = randperm(numel(imdsValidation.Files),4);
figure
for i = 1:4
subplot(2,2,i)
I = readimage(imdsValidation,idx(i));
imshow(I)
label = YPred(idx(i));
title(string(label));
end
Hirokazu Tanaka
Hirokazu Tanaka il 3 Ago 2018
netTransfer = trainNetwork(augimdsTrain,layers,options);
とある通り、転移学習後のネットワークは netTransfer のように見受けられます。ただその直後の
YPred = predict(classifier,featuresTest);
がよくわかりませんでした。classifier はどこから来たのでしょう。
どのページにあるチュートリアルなのか、使っているMATLABバージョン情報もあればうれしいですが、、その前にお困りの点は何でしょうか?
chihiro sasaya
chihiro sasaya il 3 Ago 2018
Modificato: chihiro sasaya il 3 Ago 2018
分かりづらくすみません。ご解答ありがとうございます。 alexnetをつかって、転移学習を行なった後のネットワークを使い自分で撮ってきた画像をつかって実験をしてみようと思っています。 現段階で転移後のネットワークモデルの場所が分からず困っていた次第です。
https://jp.mathworks.com/help/nnet/ref/alexnet.html
この中盤辺りの 事前学習済みのネットワークの読み込み の所から サンプルのデータを変えて見ておこないました。
バージョンは、'9.4.0.813654 (R2018a)' です。
Hirokazu Tanaka
Hirokazu Tanaka il 4 Ago 2018
詳細ありがとうございます。おそらく「AlexNet を使用した転移学習」というサンプルコードのことだと思いますが、
netTransfer = trainNetwork(augimdsTrain,layers,options);
のコマンドで転移層と新しい層とで構成されるネットワークを学習していますので、netTransfer がお探しの「転移後のネットワークモデル」になるのかと思うのですがいかがでしょう。「モデルの場所」というものが今少し理解できずにおります・・。
chihiro sasaya
chihiro sasaya il 5 Ago 2018
ご回答ありがとうございます。 うまくいきました! 最近まで違うツールでネットワークを触っていて、その感じ学習済みモデルというものが生成されるのかなと思いこのように書いてしまいました。 教えていただいて本当に感謝しています!
Hirokazu Tanaka
Hirokazu Tanaka il 5 Ago 2018
うまくいったようで、よかったです :) サンプルを実行してみるのもいいですが、こちらの「ディープラーニング入門」コースも無料ですし感触をつかむにはお勧めですよ。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange

Prodotti

Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!