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

3 visualizaciones (últimos 30 días)
健太郎 藤本
健太郎 藤本 el 2 de Nov. de 2022
Editada: Hiro Yoshino el 14 de Nov. de 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{:});

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 時系列、シーケンス、およびテキストを使用した深層学習 en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!