跳转到主要内容

Keras模型解释工具箱。

项目描述

Keras Explain

此软件包包含了大多数用于解释Keras模型预测的解释工具。目前,仅支持输入图像的模型。它支持以下方法

梯度方法

与模型无关的方法

所有方法都很容易在两行代码中将它们应用到您的模型中。如果您对包中应包含的新方法有任何建议,请随时提出。同时欢迎所有改进建议、错误报告和错误修复。

目前,我们正在实施以下方法

  • Fong等人提出的有意义扰动
  • Layer-wise relevance propagation - 我们正在添加尚未支持的操作层。

用法

梯度方法

GradCam

from keras_explain.grad_cam import GradCam

explainer = GradCam(model, layer=None)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测
  • layer - (可选) 解释预测的层的索引(在 model.layers 中的索引)。如果没有指定,则自动解释最后一层的预测。

输出

  • exp - 解释。GradCam 仅标记对 目标类别 分类有贡献的特征。

Guided GradCam

from keras_explain.grad_cam import GuidedGradCam

explainer = GuidedGradCam(model, lyer=None)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测
  • layer - (可选) 解释预测的层的索引(在 model.layers 中的索引)。如果没有指定,则自动解释最后一层的预测。

输出

  • exp - 解释。GuidedGradCam 仅标记对 目标类别 分类有贡献的特征。

Guided back-propagation

from keras_explain.guided_bp import GuidedBP

explainer = GuidedBP(model)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp - 解释。Guided back-propagation 仅标记对 目标类别 分类有贡献的特征。

Integrated gradients

from keras_explain.integrated_gradients import IntegratedGradients

explainer = IntegratedGradients(model)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp - 解释。Integrated gradients 仅标记对 目标类别 分类有贡献的特征。

显著度

from keras_explain.saliency import Saliency

explainer = Saliency(model, layer=None)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测
  • layer - (可选) 解释预测的层的索引(在 model.layers 中的索引)。如果没有指定,则自动解释最后一层的预测。

输出

  • exp - 解释。Saliency 仅标记对 目标类别 分类有贡献的特征。

层相关传播 [BETA]

此方法目前尚不支持所有层。我们目前正在实现缺失的层。如果您愿意,可以自己实现任何层支持并提交为 pull request。由于实现非常定制化,任何改进建议都受欢迎。

from keras_explain.lrp import LRP

explainer = LRP(model)
exp = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp - 解释。LRP 仅标记对 目标类别 分类有贡献的特征。

### 非模型方法

预测差异

from keras_explain.prediction_diff import PredictionDiff

explainer = PredictionDiff(model)
exp_pos, exp_neg = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp_pos - 解释,标记对 目标类别 分类有贡献的特征。
  • exp_neg - 解释,标记对 目标类别 分类有对抗性贡献的特征。

基本灰度

from keras_explain.graying_out import GrayingOut

explainer = GrayingOut(model)
exp_pos, exp_neg = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp_pos - 解释,标记对 目标类别 分类有贡献的特征。
  • exp_neg - 解释,标记对 目标类别 分类有对抗性贡献的特征。

LIME

from keras_explain.lime_ribeiro import Lime

explainer = Lime(model)
exp_pos, exp_neg = explainer.explain(image, target_class)

参数

  • model - 被解释的Keras模型
  • image - 预测被解释的输入
  • target_class - 方法解释目标类的预测

输出

  • exp_pos - 解释,标记对 目标类别 分类有贡献的特征。
  • exp_neg - 解释,标记对 目标类别 分类有对抗性贡献的特征。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分布

keras-explain-0.0.1.tar.gz (22.4 kB 查看散列)

上传时间

构建分布

keras_explain-0.0.1-py3-none-any.whl (27.0 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面