Setelah mendapatkan metrik accuracy dari model klasifikasi biner keras saya, saya perlu tahu model apa yang membuat prediksi. Jadi, saya tertarik dengan kepentingan variabel. Saya menggunakan paket 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) 

Fungsi Explain memberi saya kesalahan berikut dalam fungsi py_get_attr_impl: AttributeError: objek 'function' tidak memiliki atribut 'func_name'.

Saya telah mengkompilasi model keras dengan R, tetapi Masalah sepertinya kesalahan itu berasal dari versi Python. Masalah dengan paket Reticulate?

1
Mario M. 3 Mei 2018, 18:05

1 menjawab

Jawaban Terbaik

Ini bekerja dengan python 2.7 tetapi menghasilkan kesalahan dengan python 3+.

Sebenarnya atribut fungsi func_name diubah namanya dengan python 3+ menjadi __name__.

Paket kapur (models.R) memiliki garis:

if (keras::get_layer(x, index = -1)$activation$func_name == 'linear')

Saya menghapus $func_name dan kodenya berfungsi untuk saya. Saya kira ini bukan solusi terbaik, namun solusi yang mungkin muncul di pikiran:

if (keras::get_layer(x, index = -1)$activation$__name__ == 'linear')

Tidak bekerja dengan R

1
Sergey Volkov 31 Juli 2018, 22:02