2
Warum gibt der folgende Code ValueError: Input 0 is incompatible with layer dense_14: expected min_ndim=2, found ndim=1
? Es funktioniert, wenn ich unroll=True
entferne, ein Parameter, von dem ich nicht erwarten würde, dass er die Ausgabedimension des LSTM beeinflusst.Keras inkompatible Eingabe Abmessungen beim Abrollen LSTM
from keras.models import Sequential
from keras.layers import LSTM, Dense
model = Sequential()
model.add(LSTM(
100,
batch_input_shape=(1, 1, 17),
unroll=True
))
model.add(Dense(1))
Ich nehme an, es damit zu tun hat:
In [9]: from keras.models import Sequential
...: from keras.layers import LSTM, Dense
...: from keras import backend as K
...: def LSTM_output_dimensions(*args,**kwargs):
...: model = Sequential()
...: model.add(LSTM(
...: *args,
...: **kwargs
...: ))
...: return K.ndim(model.outputs[0])
...:
In [10]: LSTM_output_dimensions(50, batch_input_shape=(1, 1, 17))
Out[10]: 2
In [11]: LSTM_output_dimensions(50, batch_input_shape=(1, 1, 17),return_sequences=True)
Out[11]: 3
In [12]: LSTM_output_dimensions(50, batch_input_shape=(1, 1, 17),unroll=True)
Out[12]: 1
In [13]: LSTM_output_dimensions(50, batch_input_shape=(1, 1, 17),unroll=True,return_sequences=True)
Out[13]: 2
Welche 'Keras' Version verwendest du? –
keras 2.0.5 auf Python 2.7 – tba