python-3.x - 编译完成后 Keras 双向 "RuntimeError: You must compile your model before using it."

标签 python-3.x keras

我正在尝试创建一个小的双向循环神经网络。模型本身编译没有错误,但是在尝试拟合模型时,我收到错误消息,指出我应该先编译。请参阅下面的代码片段:

# fourth recurrent model, bidirectional
bidirectional_recurrent = Sequential()
bidirectional_recurrent.add(Bidirectional(GRU(32, input_shape=(int(lookback/steps), data_scaled.shape[-1]))))
bidirectional_recurrent.add(Dense(1))

bidirectional_recurrent.compile(optimizer='rmsprop', loss='mae')

bidirectional_recurrent_history = bidirectional_recurrent.fit_generator(train_gen, steps_per_epoch=500, epochs=40,
                                               validation_data=val_gen, validation_steps=val_steps)

运行时错误:您必须在使用之前编译模型。

我使用相同的设置来训练单向 RNN,效果很好。感谢任何有助于解决运行时错误的提示。 (重新启动内核没有帮助)
也许我没有正确实例化“双向”?

请注意:此问题不同于 Do I need to compile before 'X'问题类型
注2:相同代码的R示例可以在here中找到

最佳答案

找到了,
当使用 Bidirectional 时,它应该被视为一个层,将 input_shape 移动到 Bidirectional() 而不是 GRU() 对象中解决了问题

所以

bidirectional_recurrent.add(Bidirectional(GRU(32, input_shape=(int(lookback/steps),
                            data_scaled.shape[-1]))))

变成
bidirectional_recurrent.add(Bidirectional(GRU(32), input_shape=(int(lookback/steps),
                            data_scaled.shape[-1])))

关于python-3.x - 编译完成后 Keras 双向 "RuntimeError: You must compile your model before using it.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50969459/

相关文章:

python - 如何使用 Python 3 构建网络爬虫?

python-3.x - 如何在python3中导入cv2?

python - 在python中编写或编写二进制文件以将数据保存到文件中?

machine-learning - 在 Keras 中保存迁移学习模型的正确方法

python - 凯拉斯输入/输出

machine-learning - 何时停止训练 - LOOV MLP

python - 根据 Bokeh 散点图中 ColumnDataSource 中的值设置颜色

python - Django 删除具有特定 key_prefix 的缓存

python-3.x - 无法在 python 中使用 DynamoDB 设置 DAX

python - 生成器和序列之间的 Keras 区别