lstmのコードについて

ディープラーニング:LSTMによる系列データの予測と分類の動画やサンプルファイルに掲載されている分類のコードを使ってlstmを試したところ、ネットワークの学習まではできましたが、検証が行えません。どうしたら検証まで行えますか??

 Accepted Answer

Kazuya
Kazuya on 30 Sep 2019

0 votes

この例題の最後、テストデータの予測精度を確認していますが、これも検証と言えば検証ですね。
どんな検証を思い描いていらっしゃいますか?

5 Comments

Kazuya
Kazuya on 30 Sep 2019
コメントを追いにくくなるとあれなので、こちらにてコメントしますね。
***matsushita ryota さんのコメント引用***
この例題と同じように分類した予測の精度を求めたいと考えています。 前述したコードだと最後のdisplayResultでエラーが出てしまい予測精度を出すことができませんでした。 載せて頂いた最後のaccも試してみたのですが、予測精度が出せず悩んでいます。
**********************
なるほど、、恐らく書かれたコードにバグがあると思いますので、、コードを開示していただけると話が速いかもしれません。それかエラーメッセージでもあれば、推測をもとになんらかしかコメントできるかもしれません。
matsushita ryota
matsushita ryota on 30 Sep 2019
Edited: michio on 30 Sep 2019
お手数おかけします。 使用したコードは以下の通りです。
%% Classify Data using LSTM clear load 'ScaledHARDataset' load 'dataC' load 'dataD'
NA = size(dataC, 1); XA = cell(NA, 1); for k = 1:NA
% XA{k} = [dataA{k, 'ax'}; dataA{k, 'ay'}; dataA{k, 'az'}]; XA{k} = [dataC{k, 'dataC'}];
end
TA = categorical(dataC.t);
layers = [ ... sequenceInputLayer(1) lstmLayer(50) lstmLayer(70, 'OutputMode', 'last') fullyConnectedLayer(11) softmaxLayer classificationLayer];
options = trainingOptions('sgdm', ... 'InitialLearnRate', 0.1, ... 'L2Regularization', 0.0001, ... 'LearnRateSchedule', 'piecewise', ... 'LearnRateDropFactor', 0.1, ... 'LearnRateDropPeriod', 100, ... 'MaxEpochs', 200, ... 'MiniBatchSize', 128, ... 'Shuffle', 'every-epoch', ... 'Plots', 'training-progress');
[net, info] = trainNetwork(XA, TA, layers, options);
%% Data conversion
NB = size(dataD, 1); XB = cell(NB, 1); for k = 1:NB
%XB{k} = [dataB{k, 'ax'}; dataB{k, 'ay'}; dataB{k, 'az'}];
XB{k} = [dataD{k, 'dataD'}];
end
TB = categorical(dataD.t); TBHat = classify(net, XB); displayResult(TB, TBHat, actLabels
エラーはdisplayResultが未定義です。と出ます。
Kazuya
Kazuya on 30 Sep 2019
displayResult という関数が無いんですね。
サンプルファイルと書かれていたので、どこかで入手されたファイルを実行されていると想像しているのですが、displayResult.m というファイルはありませんでしたか?
matsushita ryota
matsushita ryota on 30 Sep 2019
ありました。
https://jp.mathworks.com/matlabcentral/fileexchange/68770-lstm
コード自体はこのページのfunctionを参考に作成しました。 本文自体にdisplayResult.mをloadしている部分がなかったため使用しないものだと考えていました。
どうすればよろしいですか??
Kazuya
Kazuya on 1 Oct 2019
MATLAB は関数を load しないんですよね。。
実行しているスクリプトと同じフォルダ内に displayResult.m が保存されていれば大丈夫だと思います。
厳密にいうと検索パスが通っているフォルダの何れかに displayResult.m があればOKですね。

Sign in to comment.

More Answers (1)

matsushita ryota
matsushita ryota on 30 Sep 2019

0 votes

この例題と同じように分類した予測の精度を求めたいと考えています。 前述したコードだと最後のdisplayResultでエラーが出てしまい予測精度を出すことができませんでした。 載せて頂いた最後のaccも試してみたのですが、予測精度が出せず悩んでいます。

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Tags

Asked:

on 29 Sep 2019

Commented:

on 1 Oct 2019

Community Treasure Hunt

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

Start Hunting!