用石灰R包解释我的keras对象的特征

时间:2018-05-03 15:05:40

标签: python r deep-learning keras reticulate

从我的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模型,但此Issue似乎是错误来自Python版本。 Reticulate包的问题?

1 个答案:

答案 0 :(得分:1)

它适用于python 2.7,但使用python 3+会产生错误。

实际上,函数属性__name__在python 3+中已重命名为if (keras::get_layer(x, index = -1)$activation$func_name == 'linear')

石灰包(models.R)有一行:

$func_name

我删除了if (keras::get_layer(x, index = -1)$activation$__name__ == 'linear') ,该代码为我工作。 我想这不是最好的解决方法,但是想到了可能的解决方案:

{{1}}

不适用于R。