Как осмыслить единицы плотного слоя как размерность прогнозируемых данных? - PullRequest
0 голосов
/ 23 июня 2019

Я имею дело с набором данных, который содержит данные временного ряда из 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.Дайте мне знать, если мой вопрос не ясен.

1 Ответ

2 голосов
/ 23 июня 2019

Обычно после определения типа модели необходимо использовать метод model.fit, чтобы подогнать его к данным.

model.fit(X_train, y_train)

Размер вывода определяется формой y_train, то есть размером вектора меток для обучения.

Чтобы предсказать, вы должны сделать что-то вроде

y_prob = model.predict(X_test) 

Надеюсь, что это ответ на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...