我有这个代码:
lstm1=LSTM(40,
input_shape=(5,5),
dropout=0.2, recurrent_dropout=0.2,return_sequences=False)
lstm2=LSTM(40,
input_shape=(5, 5),
dropout=0.2, recurrent_dropout=0.2,return_sequences=False)
merged = merge([lstm1, lstm2], mode='concat',concat_axis=1)
但我得到这个错误:
merged = merge([lstm1, lstm2], mode='concat',concat_axis=1)
File "/home/rjpg/anaconda3/lib/python3.6/site-
packages/keras/legacy/layers.py", line 470, in merge
return merge_layer(inputs)
File "/home/rjpg/anaconda3/lib/python3.6/site-
packages/keras/engine/topology.py", line 549, in __call__
input_shapes.append(K.int_shape(x_elem))
File "/home/rjpg/anaconda3/lib/python3.6/site-
packages/keras/backend/tensorflow_backend.py", line 451, in int_shape
shape = x.get_shape()
AttributeError: 'LSTM' object has no attribute 'get_shape'
我怎么能不使用Sequential()(使用merge而不是Merge)?
目标是使用具有输出维度的maxpool图层的输出来提供此合并图层,如:
max_pooling2d (MaxPooling) (None, 2, 5, 5)
谢谢
你的代码lstm1和lstm2是层而不是输出
所以合并不起作用给''LSTM'对象没有属性'get_shape'“错误
像这样的第一个设计代码
inp = Input(...)
lstm1 = LSTM(...)(inp)
lstm2 = LSTM(...)(inp)
merged = merge([lstm1, lstm2], ...)