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如何在点击JButton触发的进程仍在处理时更新JLabel?   try-catch为什么Java有嵌套的try语句?   java SSH命令执行失败,出现异常“net.schmizz.sshj.connection.ConnectionException:引发连接重置异常”   java在ApacheCamel的接口类解析器中,resolveMandatoryClass(字符串名称)有什么用途?   java如何在Eclipse远程调试器中找到有问题的线程?   java线程:containerlaunch退出代码127的异常   lambda左连接Java中的2个对象列表   Swift 2.0协议扩展和Java/C抽象类之间有区别吗?   安卓改造:使用GSON将JSON解析为多个Java对象   Spring中服务层的java角色(澄清)   html Java与网站的通信   Spring boot rest api是在不创建java类的情况下将getResultList()转换为映射以显示响应的最佳方法吗?   使用“getElementById”从javascript获取值到java   java如何在文本视图中以粗体和多色显示文本   java是设置TextView颜色的最有效方法