python - 使用双向而不是标准 LSTM 层时的形状错误
问题描述
切换到双向层时,我的代码出错。该模型在使用标准 LSTM 层时有效。我得到的错误是:
File "<ipython-input-22-1e9000cb0bf6>", line 12, in <module>
model.build(input_shape)
ValueError: Input 0 is incompatible with layer bidirectional_11: expected ndim=3, found ndim=2
我的代码如下所示:
input_shape = (lengtharray,1)
model = Sequential()
model.add(Bidirectional(CuDNNLSTM(128, input_shape=input_shape, return_sequences=True)))
model.add(Dropout(0.5))
model.add(Dense(64))
model.add(Bidirectional(CuDNNLSTM(128)))
model.add(Dropout(0.5))
model.add(Dense(64))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.build(input_shape)
opt = keras.optimizers.Adam(lr=0.01, decay=0.0001)
model.compile(loss='binary_crossentropy',
optimizer=opt,
metrics=['accuracy'])
callbacks = [EarlyStopping(monitor='val_loss'),
ModelCheckpoint(filepath='best_model.h5', monitor='val_loss', save_best_only=True)]
model.summary()
为什么在使用双向而不是标准 LSTM 时会返回形状错误?
解决方案
推荐阅读
- c# - Xamarin.Android:如何为每个通知添加唯一的 Intent
- jquery - Scrollmagic - 补间被另一个覆盖
- c# - 如何在基于令牌的身份验证中限制帐户
- bash - 在不同的文件中使用 For 和 save 和 saa
- python - Python:如何将函数的结果分配给我可以读取的变量_csv
- python-3.x - 基于重复的数据帧的折叠/转置列 - 熊猫
- android - OnClick 方法不启动新活动
- java - 尝试将对象存储在非常类型的变量中时不兼容的类型
- c# - 为角色添加空中滑行
- reactjs - 如何在 Meteor Method 完成之前禁用反应按钮