Я пытаюсь обучить рекуррентную нейронную сеть с Keras на Python. После того, как график вычислит результат слоя LSTM, измерение временного шага потеряет свою информацию, как показано ниже.
код:
print('Creating model...')
print('max_encoder_seq_length', self.max_encoder_seq_length)
print('num_encoder_tokens', self.num_encoder_tokens)
self.encoder_inputs = Input(shape=(self.max_encoder_seq_length, self.num_encoder_tokens), name='encoder_inputs')
print('encoder_inputs.shape', self.encoder_inputs.shape)
print('encoder_inputs.shape', self.encoder_inputs.shape)
self.encoder_outputs = LSTM(self.lstm_dim,
name='lstm_layer',
return_sequences=True,
)(self.encoder_inputs)
print('encoder_outputs.shape', self.encoder_outputs.shape)
Выход:
Number of samples: 8000
Number of unique input tokens: 59
Max sequence length for inputs: 93
encoder_input_data.shape: (8000, 93, 59)
Creating model...
max_encoder_seq_length 93
num_encoder_tokens 59
encoder_inputs.shape (?, 93, 59)
encoder_outputs.shape (?, ?, 64)
Итак, мой вопрос; Почему Keras теряет второе измерение, информацию о временном шаге? Это должно быть (?, 93, 64)
, но возвращается (?, ?, 64)
, почему?
Я использую:
python 3.6.8
Keras 2.2.4