Keras模型解释工具箱。

keras-explain的Python项目详细描述


Keras解释

此软件包包含用于解释的大多数解释工具 凯拉斯模型预测。目前,只有输入图像的模型 支持。 它支持以下方法:

梯度法:

与模型无关的方法:

所有方法都很容易在两行代码中应用到您的模型。 如果你对包中包含的新方法有任何建议 请毫不犹豫地提出建议。也欢迎所有改进建议、错误报告和错误修复。

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

  • Fong等人的有意义扰动
  • 分层关联传播-我们正在添加不受支持的层 然而。

用法

梯度法

梯度凸轮
from keras_explain.grad_cam import GradCam

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测
  • -(可选)层的索引(model.layers中的索引) 预言被解释了。 如果未指定,则自动解释最后一层预测。

输出:

  • exp-解释。Gradcam标记仅用于 目标类中的分类

导向梯度凸轮
from keras_explain.grad_cam import GuidedGradCam

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测
  • -(可选)层的索引(model.layers中的索引) 预言被解释了。 如果未指定,则自动解释最后一层预测。

输出:

  • exp-解释。GuidedGradCam仅标记有助于 目标类中的分类

引导反向传播
from keras_explain.guided_bp import GuidedBP

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp-解释。引导反向传播标记仅具有 为目标类中的分类做出贡献

综合梯度
from keras_explain.integrated_gradients import IntegratedGradients

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp-解释。集成渐变只标记有助于 目标类中的分类

显著性

from keras_explain.saliency import Saliency

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

PAR计量器:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测
  • -(可选)层的索引(model.layers中的索引) 预言被解释了。 如果未指定,则自动解释最后一层预测。

输出:

  • exp-解释。显著性标记仅用于有助于 目标类中的分类

分层相关传播[beta]

这种方法还不支持所有层。我们目前正在实施 缺少层。如果你希望你可以实现任何层支持你自己 作为请求提交。因为实现是非常定制的 欢迎提出改进建议。

from keras_explain.lrp import LRP

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp-解释。LRP仅标记有助于 目标类中的分类

###与模型无关的方法

预测差异

from keras_explain.prediction_diff import PredictionDiff

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp_pos-带有标记功能的说明 目标类中的分类
  • exp_neg-带有标记特征的说明 根据目标类中的分类

基本灰显

from keras_explain.graying_out import GrayingOut

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp_pos-带有标记功能的说明 目标类中的分类
  • exp_neg-带有标记特征的说明 根据目标类中的分类

石灰

from keras_explain.lime_ribeiro import Lime

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

参数:

  • 模型-解释的Keras模型
  • 图像-输入解释的预测
  • 目标类-方法解释目标类的预测

输出:

  • exp_pos-带有标记功能的说明 目标类中的分类
  • exp_neg-带有标记特征的说明 根据目标类中的分类

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
构造函数的java条件调用   类Dog中的java构造函数Dog不能应用于给定类型   java jsch和运行“sudo su”   java将队列和堆栈相互复制   java如何在netbeans项目的文件夹中添加库   java While循环在我的代码中不存在   如何在XML中使用java方法的返回值   java是否可以在不写入文件的情况下将字符串/字节数组作为文件发布?   java为什么这些字符串不相等?   sockets客户机-服务器java编程,用户可选择   java如何在SpringMVC和hibernate中保存模型返回视图的列表   java如何修复组织。openqa。硒。WebDriverException:未知错误   Java,Ant错误:编码Cp1252的不可映射字符   JAVAlang.ClassCastException:[Ljava.lang.String;与java.lang.String不兼容   java如何使用JDK8(可选)为空字段创建自定义IntelliJ getter模板   java Tomcat6响应。sendRedirect()404错误