深層学習を使った時系列予測をする際のtrainNetwork関数での取り扱い
17 views (last 30 days)
Show older comments
現在深層学習を使用した時系列データ予測のうちシーケンスデータの読み込みからネットワークの学習プロセスまでを行っています。そこで下記プログラムを作成して実行したところ、trainNetwork関数のところで「無効な学習データです。予測子はシーケンスの N 行 1 列の cell 配列でなければなりません。ここで N はシーケンスの数です。すべてのシーケンスは同じ特徴次元と、少なくとも 1 つのタイム ステップをもたなければなりません。」と表示されました。次に、1行ずつデバッグしたところN行1列のcell配列を予測子を作りlstm層などの作成までは確認できました。そこでエラーメッセージ後半の文章のほうが問題になっていると思っています。しかし、修正方法がわかりません。
ちなみに以下のプログラムは「深層学習を使用した時系列予測」などを参照にして作りました。
以下プログラム
T1=readtable('pressure_data_20190326_1.xlsx');
%T1:エクセルデータ(添付)の読み込み
%table2arrayでtable型配列を変更
%lambda=1.0 pressure data
T1_data=table2array(T1(4:end,2:end));
%1行N列の配列へ
for i=1:300
T1_array{i}=T1_data(1:end,i);
end
%転置
T1_a=(T1_array)';
%シーケンスの最初の90%で学習を行い残りの10%でテストする
numTimeStepsTrain = floor(0.9*numel(T1_a));
T1Train = T1_a(1:numTimeStepsTrain+1);
T1Test = T1_a(numTimeStepsTrain+1:end);
%予測子と応答の準備
XT1Train = T1Train(1:end-1);
YT1Train = T1Train(2:end);
%lstmアーキテクチャ 定義
numFeatures=1;
numResponse=1;
numHiddenUnits=200;
%lstm層
layers = [ ...
sequenceInputLayer(numFeatures)
lstmLayer(200)
fullyConnectedLayer(numResponse)
regressionLayer];
%トレーニングオプション
options = trainingOptions('adam', ...
'MaxEpochs',250, ...
'GradientThreshold',1, ...
'LearnRateSchedule','piecewise', ...
'LearnRateDropPeriod',125, ...
'LearnRateDropFactor',0.2, ...
'Verbose',0, ...
'Plots','training-progress')
net = trainNetwork(XT1Train,YT1Train,layers,options);
出力結果:
エラー: trainNetwork (line □□)
無効な学習データです。予測子はシーケンスの N 行 1 列の cell 配列でなければなりません。ここで N はシーケンスの数です。すべてのシーケンスは同じ
特徴次元と、少なくとも 1 つのタイム ステップをもたなければなりません。
エラー: LSTM (line □□)
net = trainNetwork(XT1Train,YT1Train,layers,options);
0 Comments
Accepted Answer
Kazuya
on 8 Oct 2019
原因は XT1Train の各セルの中身がセル配列になっていることの様です。各セルの中身が例えば double 型であれば動くはず。
冒頭を以下のように変えて試してみてください。数値部分だけを readtable で読み込む設定にしました。
opts = detectImportOptions(filename,'DataRange','B4');
T1=readtable('pressure_data_20190326_1.xlsx',opts,'ReadVariableNames',false);
T1_data = T1.Variables;
%1行N列の配列へ
for i=1:300
T1_array{i}=T1_data(1:end,i)';
end
2 Comments
More Answers (0)
See Also
Categories
Find more on イメージを使用した深層学習 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!