2
なぜ次のコードがValueError: Input 0 is incompatible with layer dense_14: expected min_ndim=2, found ndim=1
になるのですか? unroll=True
を削除したときに動作します。これは、LSTMの出力ディメンションには影響しないと予想されるパラメータです。LSTMをアンロールする際のKerasの互換性のない入力寸法
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))
私はこれに関係しているとします
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
どの 'Keras'バージョンを使用していますか? –
keras 2.0.5 on Python 2.7 – tba