Создание RNN с Keras Python - PullRequest
       4

Создание RNN с Keras Python

0 голосов
/ 26 августа 2018

Я новичок в машинном обучении и керасе.Я создал нейронную сеть с Keras для регрессии, которая выглядит следующим образом:

model = Sequential()
model.add(Dense(57, input_dim=44, kernel_initializer='normal', 
activation='relu'))
model.add(Dense(45, activation='relu'))
model.add(Dense(35, activation='relu'))
model.add(Dense(20, activation='relu'))
model.add(Dense(18, activation='relu'))
model.add(Dense(15, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(1, activation='linear'))

Мои данные имеют 44 измерения, поэтому не могли бы вы дать мне пример, как я могу сделать RNN.Я пытаюсь так:

model = Sequential()
model.add(LSTM(44, input_shape=(6900, 44), ))
model.add(Dense(1))
model.compile(loss='mape', optimizer='adam', metrics=['mse', 'mae', 'mape'])
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=1)

Но я получаю эту ошибку: Ошибка при проверке ввода: ожидалось, что lstm_13_input будет иметь 3 измерения, но получил массив с формой (6900, 44)

1 Ответ

0 голосов
/ 27 августа 2018

Насколько я понял, ваши данные 44 размерны, а не временные ряды. RNN - это вычислительные операции над последовательностью данных, то есть 2D, а не 1D тензор. Но вы все равно можете использовать RNN для 1D векторов, интерпретируя их не как один n -мерный вектор, а как временной ряд n шагов, каждый из которых содержит 1D вектор.

model = Sequential()
model.add(Reshape((-1, 1)
model.add(LSTM(44, input_shape=(6900, 44), ))
model.add(Dense(1))
model.compile(loss='mape', optimizer='adam', metrics=['mse', 'mae', 'mape'])
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=1)
...