Keras, LIME: Нет данных для "lstm__input" в функции "объяснения" - PullRequest
0 голосов
/ 11 января 2019

Я получаю ValueError: Нет данных для "lstm__input". Нужны данные для каждого ключа в: ['lstm__input'] при выполнении lime :: объяснение

У меня последняя версия Lime, и я просмотрел все связанные темы по моей проблеме. У меня есть регрессионная сеть LSTM, и у меня нет проблем с ее обучением и прогнозированием ценностей. Кроме того, у меня нет проблем с прогнозированием значений с помощью lime:

class(model)
%keras.engine.sequential.Sequential   
model_type.keras.engine.sequential.Sequential <- function(x, ...) {
  "regression"}
predict_model.keras.engine.sequential.Sequential <- function (x, newdata, type, ...) {
  pred <- predict(object = x, x = newdata)
  data.frame (pred) }
predict_model(x = model, newdata = (testX_Matrix), type = 'raw') 
explainer <- lime::lime (
  x              = trainX, 
  model          = model, 
  bin_continuous = FALSE)

До этого момента все работало нормально. Когда я пытаюсь запустить следующие строки:

explanation <- lime::explain (
    testX, 
    explainer    = explainer, 
    n_features   = 4)

Я получаю сообщение об ошибке:

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  ValueError: No data provided for "lstm_8_input". Need data for each key in: ['lstm_8_input']

Detailed traceback: 
  File "C:\Soft\anaconda\envs\R-TENS~1\lib\site-packages\keras\engine\training.py", line 1147, in predict
    x, _, _ = self._standardize_user_data(x)
  File "C:\Soft\anaconda\envs\R-TENS~1\lib\site-packages\keras\engine\training.py", line 749, in _standardize_user_data
    exception_prefix='input')
  File "C:\Soft\anaconda\envs\R-TENS~1\lib\site-packages\keras\engine\training_utils.py", line 77, in standardize_input_data
    'for each key in: ' + str(names))

Полагаю, главная проблема заключается в том, что моему NN требуется только 3-мерная матрица (то же, что я использовал в predict_model), но lime не работает с объектами класса ' массив "," двойной "," числовой ", поэтому я не могу его использовать. Кто-нибудь сталкивался с такой проблемой? Как я могу это исправить?

...