#tensorflow #keras #shap
#tensorflow #keras #shap
Вопрос:
Я получаю следующую ошибку при использовании DeepExplainer для последовательной модели Keras для многоклассовой классификации текста. Пожалуйста, найдите подробности ниже:
##KERAS ВЕРСИЯ: 2.4.3.
##МОДЕЛЬ
model = Sequential()
model.add(InputLayer (input_shape= (max_len ,)))
model.add(Embedding (vocab_size 1 , embed_dim , input_length= max_len, weights[embed_matrix]))
model.add(LSTM (LSTM_unit , dropout= dropouts, recurrent_dropout=dropouts,return_sequences=False))
model.add(Dense (6 , activation="softmax"))
##DEEPEXPLAINER
explainer = shap.DeepExplainer(model, X_train[:100], learning_phase_flags = None)
shap_values = explainer.shap_values(X_test[:10])
ОШИБКА
LookupError: gradient registry has no entry for: shap_TensorListStack
Пожалуйста, помогите мне с решением этой проблемы. Я перепробовал все возможные решения, представленные в проблемах, упомянутых в репозитории, но не смог устранить эту ошибку.
С наилучшими пожеланиями, Мегна Гоял
Ответ №1:
Эта ошибка связана с используемым вами пакетом «shap». Для работы требуется определенный набор пакетов:
- TensorFlow 1.14
- Python 3.7
- Protobuf 3.20
- h5py 2.10
import tensorflow as tf
import sys
import google.protobuf
import h5py
assert tf.__version__ == '1.14.0'
assert sys.version_info[0] == 3 and sys.version_info[1] == 7
assert google.protobuf.__version__ == '3.20.0'
assert h5py.__version__ == '2.10.0'
Ссылка: https://github.com/slundberg/shap/issues/1490#issuecomment-1368185975