python - 用石灰 R 包解释我的 keras 对象的功能
问题描述
从我的二元分类模型中获得accuracy
指标后keras
,我需要知道模型做出了什么预测。所以,我对可变重要性感兴趣。我使用lime
包。
library(lime)
explainer <- lime (
x = x_train,
model = model_keras,
bin_continuous = FALSE)
explanation <- explain (
x_test[1:20,], # Show first 20 samples
explainer = explainer,
n_labels = 1,
n_features = 5)
Explain
函数在函数中给了我以下错误py_get_attr_impl
:AttributeError:'function'对象没有属性'func_name'。
我已经用 编译了keras
模型R
,但是这个问题似乎是错误来自 Python 版本。包有问题Reticulate
?
解决方案
它适用于 python 2.7,但使用 python 3+ 会产生错误。
实际上,函数属性func_name
在 python 3+ 中被重命名为__name__
.
石灰包(models.R)有一行:
if (keras::get_layer(x, index = -1)$activation$func_name == 'linear')
我删除$func_name
并且代码对我有用。我想这不是最好的解决方法,但是想到的可能的解决方案:
if (keras::get_layer(x, index = -1)$activation$__name__ == 'linear')
没有与R一起工作。
推荐阅读
- android - 为 Android 应用设置 Google Ads 的步骤
- clickhouse - 如何在子查询中填写日期?
- scala - Scala - 当文件的路径不存在时读取数据帧
- android - Android Studio 3.5 重构问题
- arm - 是否可以在 STM32 L0 中启用 MemManage_Handler
- go - “go mod tidy”与“go build”的行为
- android - 无法使用多部分请求帖子
- javascript - UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“关闭”
- java - Android-Studio 报告自动装箱错误,但仍然可以编译
- python - 通过多个分隔符重塑数据和分隔