在为Keras序列模型使用DeepExplainer进行多类文本分类时,我收到以下错误。请查看以下详细信息:
##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
请帮我解决这个问题。我已经尝试了存储库中提到的问题中提供的所有可能的解决方案,但无法解决此错误。
谨致问候,Meghna Goyal
此错误是由于;shap";您正在使用的程序包。它需要一组特定的包才能工作:
- TensorFlow 1.14
- Python 3.7
- Protobuf 3.20
- 下午5点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