初心者のRNN(LSTM) | Kerasで試してみるというQiitaの記事を参考に、LSTMについて学習をしております。
機械学習やTensorFlow自体、学習を始めて数日のところです。
こちらの記事では、データセットを生成する時と将来のデータを予測する際のデータセットを生成する時に、データオブジェクトに対してreshapeメソッドを使用し、行列の変換を行っているのだと理解しております。
こちらでreshapeする際のデータの構造が理解できずにいます。具体的には下記のコードです。
def make_dataset(low_data, n_prev=100): data, target = [], [] maxlen = 25 for i in range(len(low_data)-maxlen): data.append(low_data[i:i + maxlen]) target.append(low_data[i + maxlen]) re_data = np.array(data).reshape(len(data), maxlen, 1) re_target = np.array(target).reshape(len(data), 1) return re_data, re_target
# 1つの学習データの時間の長さ -> 25 time_length = future_test.shape[1] # 未来の予測データを保存していく変数 future_result = np.empty((1)) # 未来予想 for step2 in range(400): test_data = np.reshape(future_test, (1, time_length, 1)) batch_predict = model.predict(test_data) future_test = np.delete(future_test, 0) future_test = np.append(future_test, batch_predict) future_result = np.append(future_result, batch_predict)
上記二か所でreshpeしているのですが、なぜこのような構造にreshapeしているのかがわからない状態です。
恐らく、TensorFlowやKeras側でこのようなデータ構造でなければ受け付けていないのだと思うのですが、そのあたりの理解をするために参考になる情報があればお教え頂ければ幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/12 00:46
2021/04/12 12:37
2021/04/12 23:59