Я пытаюсь обучить простую модель RNN на основе LSTM в Керасе, используя return_sequence. Как я хочу, чтобы все выходные данные. Вот код, который я использую:
model = Sequential()
model.add(LSTM(10, return_sequences = True, input_shape = (8, 8)))
model.add(Activation('softmax'))
model.compile(loss = 'categorical_crossentropy', optimizer = adam, metrics = ['accuracy'])
model.fit(X_train, y_train, batch_size = 1, epochs = 1000, verbose = 1)
Но я получаю следующую ошибку:
model.fit(X_train, y_train, batch_size = 1, epochs = 1000, verbose = 1)
File "C:\Program Files\Anaconda3\lib\site-packages\keras\models.py", line 1002, in fit
validation_steps=validation_steps)
File "C:\Program Files\Anaconda3\lib\site-packages\keras\engine\training.py", line 1630, in fit
batch_size=batch_size)
File "C:\Program Files\Anaconda3\lib\site-packages\keras\engine\training.py", line 1480, in _standardize_user_data
exception_prefix='target')
File "C:\Program Files\Anaconda3\lib\site-packages\keras\engine\training.py", line 113, in _standardize_input_data
'with shape ' + str(data_shape))
ValueError: Error when checking target: expected activation_1 to have 3 dimensions, but got array with shape (1437, 10)
Но тот же код отлично работает, когда я меняю строку с:
model.add(LSTM(10, return_sequences = True, input_shape = (8, 8)))
до:
model.add(LSTM(10, return_sequences = False, input_shape = (8, 8)))
Я предполагаю, что мне придется изменить определение слоя активации ('softmax'), но не уверен, как. Может кто-нибудь помочь мне решить эту проблему?
ТИА