複数入力から一つの出力を出すLSTMの作成
31 次查看(过去 30 天)
显示 更早的评论
LSTMを使用して1100×1の時系列データを3つ入力として入れて,一つの出力(1100×1)を出すようなコードを考えています.3つの時系列データはそれぞれ異なる単位を持つ変数で,データ数は400です.
以下の例からLSTMで実現可能だと思うのですが初心者なので正しく理解できていない可能性があります
深層学習を使用してエンジンの残存耐用期間 (RUL) を予測する
そこでLSTMでそのようなシステムが可能かどうかお聞きしたいです.
初心者で必要な判断に必要な情報が抜けていましたら申し訳ありませんがよろしくお願いいたします.
0 个评论
回答(1 个)
Naoya
2021-11-25
複数の時系列を学習させる場合は、 入力データおよび教師データを nx1 のセル配列にする必要があります。
ここで各セルには、 [入力数 x 時系列ステップ数] , [出力数 x 時系列ステップ数] の行列を定義します。
以下は、 3入力1出力 100ステップ分の時系列データを 4種類学習した例となります。
% 入力データ 3入力 100時間ステップ分, 4時系列データ
xdata = {rand(3,100);
rand(3,100);
rand(3,100);
rand(3,100)};
% 出力データ 1入力 100時間ステップ分, 4時系列データ
ydata = {rand(1,100);
rand(1,100);
rand(1,100);
rand(1,100)};
% レイヤ定義
layers = [sequenceInputLayer(3);
lstmLayer(50);
fullyConnectedLayer(1);
regressionLayer()];
% 学習オプション / 学習
opts = trainingOptions('sgdm','InitialLearnRate',1e-2);
net = trainNetwork(xdata, ydata, layers, opts);
3 个评论
Naoya
2024-6-18
学習済のネットワーク "net" は、下記のように predict 関数を使って、新たな時系列データ z_indata に対して、その推論値を z_outdata として出力することができます。
z_indata = rand(3,100);
z_outdata = predict(net, z_indata);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 時系列、シーケンス、およびテキストを使用した深層学習 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!