AttributeError: у объекта 'Sequential' нет атрибута 'eval' - PullRequest
0 голосов
/ 08 октября 2019

'' 'Я использую SHAP для анализа модели, и при вызове' DeepExplainer 'я получаю "AttributeError: у объекта' Sequential 'нет атрибута' eval '"

Я использую theano сКерас вместо тензорного потока, потому что есть некоторая проблема несоответствия версий с SHAP, то же самое я отправил в другом вопросе. Так что теперь я пробую то же самое, но на этот раз, _Backend, я использую PyTorch, и построение модели в порядке, но при использовании SHAP DeepExplainer выдает ошибку Attribute, я новичок в этом типе ошибки для домена Model Explainer '' '

Ввод:

print('Pad sequences (samples x time)')
x_train = sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = sequence.pad_sequences(x_test, maxlen=maxlen)
print('x_train shape:', x_train.shape)
print('x_test shape:', x_test.shape)

print('Build model...')
model = Sequential()
model.add(Embedding(max_features, 128))
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='sigmoid'))

# try using different optimizers and different optimizer configs
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

print('Train...')
model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=1,
          validation_data=(x_test, y_test))
score, acc = model.evaluate(x_test, y_test,
                            batch_size=batch_size)
print('Test score:', score)
print('Test accuracy:', acc)

Выход: нет ошибок

После этого: Ввод:

import shap

# we use the first 100 training examples as our background dataset to integrate over
explainer = shap.DeepExplainer(model, x_train[:100])

Ошибка:

AttributeError                            Traceback (most recent call last)
<ipython-input-12-9cca779d01d2> in <module>
      1 # we use the first 100 training examples as our background dataset to integrate over
----> 2 explainer = shap.DeepExplainer(model,1)

c:\users\shubh\.conda\envs\pytorch_cpu\lib\site-packages\shap\explainers\deep\__init__.py in __init__(self, model, data, session, learning_phase_flags)
     79             self.explainer = TFDeepExplainer(model, data, session, learning_phase_flags)
     80         elif framework == 'pytorch':
---> 81             self.explainer = PyTorchDeepExplainer(model, data)
     82 
     83         self.expected_value = self.explainer.expected_value

c:\users\shubh\.conda\envs\pytorch_cpu\lib\site-packages\shap\explainers\deep\deep_pytorch.py in __init__(self, model, data)
     47             self.target_handle.remove()
     48             del self.layer.target_input
---> 49         self.model = model.eval()
     50 
     51         self.multi_output = False

AttributeError: 'Sequential' object has no attribute 'eval'

Любойпомощь или направление для устранения этой ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...