Я имею дело с набором данных, который содержит данные временного ряда из 2 объектов с координатами x, y.Мне интересно предсказывать будущее x, y (как кортеж, если это возможно) из предыдущих координат.Я довольно плохо знаком с глубоким обучением и внимательно слежу за этой статьей о Kaggle
Введение в рекуррентные нейронные сети LSTM |GRU
Поиск Google дал мне ответ, что input_shape
в слое LSTM ожидает 3D-кортеж (batch_size, time_steps, feature
).Основываясь на этих знаниях, я погрузился в 2D-данные (x, y):
X_train = []
y_train = []
for i in range(60,len(train_set_scaled)):
X_train.append(training_set_scaled[i-60:i,0:2])
y_train.append(training_set_scaled[i,0:2])
X_train, y_train = np.array(X_train), np.array(y_train)
print X_train.shape
(6208,60,2)
Поскольку это был 3D-кортеж, я не изменил его и продолжил.
## model begins here
regressor = Sequential()
regressor.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1:]))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units=50, return_sequences=True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units=50, return_sequences=True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units=50))
regressor.add(Dropout(0.2))
regressor.add(Dense(units=2)) ## i am predicting future x,y
Мой код работает, я немного не уверен в выводе.Это действительно будущее x, y, которое я предсказываю?потому что если я даю units=3
, я получаю 3D-вывод, а units=1
, я получаю 1D-вывод.Что это на самом деле означает?Я предполагаю, что заставляю мою сеть сходиться к n
выводам, когда я даю units=n
.Дайте мне знать, если мой вопрос не ясен.