- これが 128 未満だと、入力データ数が MiniBatchSize として設定されます
- 128 より大きく、MiniBatchSize を指定しない場合は 128 の剰余分が MiniBatchSize になります
predictAndUpdateState関数で時系列の予測をしていた時に起きた問題
1 回表示 (過去 30 日間)
古いコメントを表示
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{:});
0 件のコメント
採用された回答
Hiro Yoshino
2022 年 11 月 4 日
predictAndUpdateState のオプションに "MiniBatchSize" というオプションがあります。このデータ数の単位で処理を実行します。デフォルトのサイズは 128 個です。この場合だと
net = predictAndUpdateState(net, XTrain);
を実行する前に、
size(XTrain)
等で、入力データの数を確認してください。
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 件のコメント
Hiro Yoshino
2022 年 11 月 14 日
編集済み: Hiro Yoshino
2022 年 11 月 14 日
良かったです。問題が解決されましたら、answer accept して close していただけますか?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 時系列、シーケンス、およびテキストを使用した深層学習 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!