Однако я сталкиваюсь с ошибками при попытке вычислить значения SHAP. Сталкивался ли кто-нибудь с подобными проблемами при применении SHAP к моделям глубокого обучения, особенно с использованием PermutationExplainer?
Код модели:
Код: Выделить всё
#Create a Sequential version of your model
sequential_model = keras.Sequential([
keras.layers.InputLayer(shape=(5000, 12)),
keras.layers.Conv1D(filters=32, kernel_size=3, activation='relu'),
keras.layers.MaxPooling1D(pool_size=2),
keras.layers.Flatten(),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dense(20, activation='softmax')
])
#Transfer weights from the original Functional model
sequential_model.set_weights(model.get_weights())
Код: Выделить всё
explainer4 = shap.Explainer(sequential_model.predict, background_data)
shap_values = explainer4(background_data,max_evals = 10001)
Код: Выделить всё
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
...
TypeError: 'numpy.ndarray' object is not callable
Кто-нибудь еще сталкивался с этим или имеет предложения о том, как это сделать? правильно применить PermutationExplainer в этом контексте? Будем признательны за любую помощь!
Я пробовал различные подходы, такие как:
- Обеспечение того, что фоновые данные имеют правильный тип данных. .
Код: Выделить всё
background_data = np.array(background_data)
< /ol>
Код: Выделить всё
background_data = background_data[:5]
Подробнее здесь: https://stackoverflow.com/questions/790 ... -model-wit