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

4 vues (au cours des 30 derniers jours)
健太郎 藤本
健太郎 藤本 le 2 Nov 2022
Modifié(e) : Hiro Yoshino le 14 Nov 2022
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{:});

Réponse acceptée

Hiro Yoshino
Hiro Yoshino le 4 Nov 2022
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 commentaires
健太郎 藤本
健太郎 藤本 le 9 Nov 2022
最初のところをnet=predictAndUpdateState(net,XTrain,MiniBatchSize=1);
としてみたんですけどこれもやってることとしては同じっぽくて良かったです。ご回答ありがとうございます。
Hiro Yoshino
Hiro Yoshino le 14 Nov 2022
Modifié(e) : Hiro Yoshino le 14 Nov 2022
良かったです。問題が解決されましたら、answer accept して close していただけますか?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 時系列、シーケンス、およびテキストを使用した深層学習 dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!