【问题标题】:Keras Bidirectional "RuntimeError: You must compile your model before using it." after compilation completedKeras Bidirectional "RuntimeError: You must compile your model before using it."编译完成后
【发布时间】:2018-06-21 13:12:00
【问题描述】:

我正在尝试创建一个小型双向循环神经网络。模型本身编译时没有错误,但是在尝试拟合模型时出现错误,指出我应该先编译。请看下面的代码sn-p:

# 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)

RuntimeError:您必须在使用模型之前对其进行编译。

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

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

【问题讨论】:

    标签: python-3.x keras


    【解决方案1】:

    找到了,
    使用 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])))
    

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2021-10-03
      • 2021-04-01
      • 2020-12-20
      • 2021-03-19
      • 2018-04-20
      相关资源
      最近更新 更多