如上所述,我的LSTM网络中的输入数据维度存在问题,这给了我下一个错误:
ValueError:输入0与lstm_1层不兼容:预期ndim = 3,找到ndim = 2
我的代码:
input_data = Input((20,))
z = Embedding(5000, input_length=20, output_dim=80,
weights[embedding_matrix])(input_data)
#z:(?,25,100)->(batch_size?,25-sentence length,100-embedding_size)
z = BatchNormalization(axis=-1)(z)
z = LSTM(256,return_sequences=True)(inputs)
z = LSTM(128)(z)
z = Dense(64, activation='relu')(z)
out = Dense(1, activation='sigmoid')(z)
model = Model(input_data,out)
我在LSTM的第一层中遇到了错误。
我知道问题是"?"
中的axis=0
,试图解决此问题。
这些就是我尝试过的事情:
受此解决方案启发: "https://stackoverflow.com/questions/49721810/lstm-keras-value-input-dimension-error"
x = x.reshape(1,x.shape [0],x.shape 1)
但是我得到了这个错误:
IndexError:元组索引超出范围
也尝试过:
x = np.expand_dims(x,axis = 0)
但不是因为类型不匹配。
我尝试了更多解决方案,但是没有运气,如果有人可以帮助我解决问题,我会很高兴。
谢谢!