我正在尝试创建一个小的双向递归神经网络。模型本身编译时没有错误,但是在尝试拟合模型时出现错误,指出应该首先编译。请参见下面的代码片段:
# 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)
Run Code Online (Sandbox Code Playgroud)
RuntimeError:必须先编译模型,然后再使用它。
我使用相同的设置来训练单向RNN,效果很好。任何帮助解决运行时错误的技巧都将受到赞赏。(重新启动内核没有帮助)
也许我没有正确实例化“双向”?
查看 shap 库,我遇到了这个问题,其中答案展示了瀑布图,简洁!看看这里和这里的一些官方示例,我注意到这些图也展示了这些功能的价值。
shap 包包含shap.waterfall_plot和shap.plots.waterfall,在 Iris 数据集上训练的随机森林上尝试两者都得到了相同的结果(请参阅下面的一个代码和图像示例)
for which_class in y.unique():
display(
shap.waterfall_plot(shap.Explanation(values=shap_values[int(which_class)][idx],
base_values=explainer.expected_value[int(which_class)],
feature_names=X_test.columns.tolist())
)
)
Run Code Online (Sandbox Code Playgroud)
其中idx表示我试图解释的测试集中的一个样本。该代码为其中一个类生成以下图:

如何让绘图也显示特征值?我没有看到任何可以传递给绘图方法的其他参数
任何帮助是极大的赞赏!