predictAnd​UpdateStat​e関数で時系列の予測​をしていた時に起きた​問題

조회 수: 1 (최근 30일)
健太郎 藤本
健太郎 藤本 2022년 11월 2일
편집: Hiro Yoshino 2022년 11월 14일
LSTMネットワークを用いて時系列の学習を行った後に予測を行おうとしたのですが、エラーが出てきてうまくできません。下のコードからどこを直したらいいか、また何が原因なのか教えてほしいです。よろしくお願いします。
ちなみにこのコードはhttps://jp.mathworks.com/videos/prediction-and-classification-of-time-series-data-using-lstm-1536600512822.html
から持ってきてデータを自分の時系列のデータに変えました。
%% 未来の時間領域での予測
% 過去データを入力して状態を更新
net = predictAndUpdateState(net, XTrain);
% 1ステップ目の予測
[net, YPred(1)] = predictAndUpdateState(net, XTest(1));
Ypred=zeros(1,5000);
% 2ステップ目以降の予測
for i = 2:numTimeStepsTest
[net, YPred(i)] = predictAndUpdateState(net, YPred(i - 1));
end
YPred = sig * YPred + mu;
エラー: DAGNetwork/predictRNN>iAssertInitialStateIsValidForPredict (行 67)
不適切なネットワークの状態。ネットワークでは 19 のミニバッチ サイズが必要ですが、サイズ 128 のミニバッチが渡されました。
エラー: DAGNetwork/predictRNN (行 9)
iAssertInitialStateIsValidForPredict(statefulLayers, dispatcher.MiniBatchSize)
エラー: DAGNetwork/predictAndUpdateState (行 127)
[Y, finalState, predictNetwork] = this.predictRNN(X, dispatcher, ...
エラー: SeriesNetwork/predictAndUpdateState (行 394)
[this.UnderlyingDAGNetwork, Y] = this.UnderlyingDAGNetwork.predictAndUpdateState(X, varargin{:});

채택된 답변

Hiro Yoshino
Hiro Yoshino 2022년 11월 4일
predictAndUpdateState のオプションに "MiniBatchSize" というオプションがあります。このデータ数の単位で処理を実行します。デフォルトのサイズは 128 個です。この場合だと
net = predictAndUpdateState(net, XTrain);
を実行する前に、
size(XTrain)
等で、入力データの数を確認してください。
  • これが 128 未満だと、入力データ数が MiniBatchSize として設定されます
  • 128 より大きく、MiniBatchSize を指定しない場合は 128 の剰余分が MiniBatchSize になります
predictAndUpdateState を二回目以降に実行する際は、MiniBatchSize 以上のデータサイズは受け付けません。
今回の場合は
net = predictAndUpdateState(net,XTrain(end)); % データを1つ入れてあげる
[net, YPred(1)] = predictAndUpdateState(net, XTest(1));
for i = 2:numTimeStepsTest
[net, YPred(i)] = predictAndUpdateState(net, YPred(i - 1));
end
等して、最後の1つで更新してあげれば良いのではと思います。
  댓글 수: 2
健太郎 藤本
健太郎 藤本 2022년 11월 9일
最初のところをnet=predictAndUpdateState(net,XTrain,MiniBatchSize=1);
としてみたんですけどこれもやってることとしては同じっぽくて良かったです。ご回答ありがとうございます。
Hiro Yoshino
Hiro Yoshino 2022년 11월 14일
편집: Hiro Yoshino 2022년 11월 14일
良かったです。問題が解決されましたら、answer accept して close していただけますか?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 時系列、シーケンス、およびテキストを使用した深層学習에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!