AttributeError: Exception encountered when calling layer "lstm"

I’m trying to run shap on my tensorflow (time series model) and getting error.

I built a simple example which I got the same error:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Masking, LSTM, Dense
import numpy as np
import shap

model = Sequential()
model.add(Masking(mask_value=0.0, input_shape=(90, 8)))
model.add(LSTM(100, return_sequences=True))
model.add(LSTM(70, return_sequences=True))
model.add(LSTM(70, return_sequences=False))  # Output shape (None, 70)
model.add(Dense(50, activation='relu'))
model.add(Dense(52, activation='softmax'))
num_samples = 5000
input_shape = (num_samples, 90, 8)


X_train             = np.random.rand(*input_shape)
y_train_int         = tf.random.uniform(shape=(num_samples,), minval=0, maxval=51, dtype=tf.int32)
y_train_categorical = tf.keras.utils.to_categorical(y_train_int, num_classes=52)

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
batch_size = 256
epochs = 5
model.fit(X_train, y_train_categorical, batch_size=batch_size, epochs=epochs, validation_split=0.2)

de = shap.DeepExplainer(model, data=X_train[:100])

Now, running the following code line:
shap_values = de.shap_values(X_train[101:102])

gives error:

 AttributeError: Exception encountered when calling layer "lstm" "                 f"(type LSTM).
    
    'TFDeep' object has no attribute 'between_tensors'
    
    Call arguments received by layer "lstm" "                 f"(type LSTM):
      • inputs=tf.Tensor(shape=(200, 90, 8), dtype=float32)
      • mask=tf.Tensor(shape=(200, 90), dtype=bool)
      • training=False
      • initial_state=None

Version:

shap.__version__ == 0.44.1
tf.__version__   == 2.10.0

What is wrong ?
how can I fix and run shap on my example ?

[Best Guess]

The root cause of the error you’re encountering with SHAP (AttributeError: 'TFDeep' object has no attribute 'between_tensors' ) when applied to your LSTM-based TensorFlow model is likely due to compatibility issues between SHAP’s DeepExplainer and TensorFlow’s implementation of LSTM layers. SHAP’s internal mechanisms for interpreting the model may not fully support the complex structures and behaviors of recurrent neural networks like LSTMs, leading to the observed error.