Shap 包的 tf_ops._gradient_registry._registry 中不存在 ClipByValue

ClipByValue not present in tf_ops._gradient_registry._registry for Shap package

我尝试使用 python 中 shap 包的 this 示例来解释我的深度学习模型。

当我调用 explainer.shap_values(test[:2]) 时,我收到一个键错误 - ClipByValue。

显然 ClipByValue 在我的 tf_ops._gradient_registry._registry 中不存在。

我今天也遇到了这个问题。

在我的调查中,我在 Shap 中隔离了这个问题。 v0.19.3 版本工作正常,但 v0.19.4 版本不是因为 ClipByValue 不存在 - 而且,对于标记 V0.19.3,ClipByValue 未在非线性中列出: https://github.com/slundberg/shap/blob/V0.19.3/shap/explainers/deep.py#L44 。所以看起来这个特定的例子从未与 ClipByValue 一起工作,被包含在所述数组中。

为了解决这个问题,我将 requirements.txt 中的 shap==v0.21.0 替换为

-e git://github.com/slundberg/shap.git@48bc3a7f8fa9465be778ecef14d4de8604275f7f#egg=shap

然后,在我的 python virtualenv 中,导航到克隆的文件夹,签出一个新分支,然后将标签 V0.19.3 的 deep.py 版本粘贴到原来的内容之上目前那里。虽然有点黑客......

不确定如何正确解决这个问题。