Tensorflow 如何用SHAP解释多类深度学习分类器?

Tensorflow 如何用SHAP解释多类深度学习分类器?,tensorflow,machine-learning,keras,deep-learning,shap,Tensorflow,Machine Learning,Keras,Deep Learning,Shap,我在IRIS数据集上用Keras训练了一个多类分类器。我想用英语来解释我的深度学习模式。我使用以下代码行,其中模型是经过训练的神经网络分类器,X1[train]是我的训练输入,X1[test]是我的测试输入: import shap explainer = shap.DeepExplainer(model, X1[train]) shap_values = explainer.shap_values(X1[test]) 但是,我得到了这个错误(当我的softmax在二进制分类中有一个输出时,我

我在IRIS数据集上用Keras训练了一个多类分类器。我想用英语来解释我的深度学习模式。我使用以下代码行,其中模型是经过训练的神经网络分类器,
X1[train]
是我的训练输入,
X1[test]
是我的测试输入:

import shap
explainer = shap.DeepExplainer(model, X1[train])
shap_values = explainer.shap_values(X1[test])
但是,我得到了这个错误(当我的softmax在二进制分类中有一个输出时,我很好。当softmax有多个输出时,问题出现):

ValueError:意外地找到了类型为``的实例。应为符号张量实例。
在处理上述异常期间,发生了另一个异常:
调用层顺序_96时使用的输入不是符号张量。收到的类型:。完整输入:

如何在多类深度学习分类器中解决此问题并获取单个类的形状值?

您如何导入keras?当从keras导入执行
时…
我遇到了相同的问题,但从tensorflow.keras导入更改为
DeepExplainer工作正常

ValueError: Unexpectedly found an instance of type `<class 'numpy.ndarray'>`. Expected a symbolic tensor instance.

During handling of the above exception, another exception occurred:
Layer sequential_96 was called with an input that isn't a symbolic tensor. Received type: <class 'numpy.ndarray'>. Full input: