Я использую Keras с Tensorflow, как движки и получить несовместимые ошибки:Keras: ValueError: Input 0 несовместим слой выдает
model = Sequential()
model.add(LSTM(64, input_dim = 1))
model.add(Dropout(0.2))
model.add(LSTM(16))
Следующая ошибка показывает:
Traceback (most recent call last):
File "train_lstm_model.py", line 36, in <module>
model.add(LSTM(16))
File "/home/***/anaconda2/lib/python2.7/site-packages/keras/models.py", line 332, in add
output_tensor = layer(self.outputs[0])
File "/home/***/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 529, in __call__
self.assert_input_compatibility(x)
File "/home/***/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 469, in assert_input_compatibility
str(K.ndim(x)))
ValueError: Input 0 is incompatible with layer lstm_2: expected ndim=3, found ndim=2
Как я могу это исправить проблема?
версия Keras: 1.2.2 Tensorflow версия: 0.12
Я проверил, что это работает, только установив 'input_dim' в одиночку, кондиционирование, что установив для 'return_sequences' значение True. Не могли бы вы рассказать мне, почему я должен установить 'return_sequences'? –
Вы должны установить return_srquences в True каждый раз, когда ваш выход будет передан в рекуррентную сеть. Это заставляет ваш слой выводить всю последовательность вычислений. Если для него установлено значение false, возвращается один размерный вектор (по умолчанию он устанавливается на последний выход последовательности). –
Является ли мой ответ правильным или неправильным? –