Keras模型解释工具箱。
项目描述
Keras Explain
此软件包包含了大多数用于解释Keras模型预测的解释工具。目前,仅支持输入图像的模型。它支持以下方法
梯度方法
- GradCam [Selvaraju]
- Guided GradCam [Selvaraju]
- Guided back-propagation [Springenberg]
- Integrated gradients [Sundararajan]
- Saliency [Simonyan]
- Layer-wise relevance propagation [BETA] [Bach]
与模型无关的方法
所有方法都很容易在两行代码中将它们应用到您的模型中。如果您对包中应包含的新方法有任何建议,请随时提出。同时欢迎所有改进建议、错误报告和错误修复。
目前,我们正在实施以下方法
- 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 查看散列)