各位下午好,我的代码如下:
import numpy as np
import shap
import keras
import pandas
from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout
X = pandas.read_excel("LSTM1.xlsx") # shape = (4453, 7)
y = np.loadtxt("y1.txt")
model = Sequential()
model.add(LSTM(50, input_shape=(4453, 1, 7)))
print(input)
model.add(Dropout(0.2))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
model.fit(X, y, epochs=10, batch_size=20)
shap.initjs()
explainer = shap.GradientExplainer(model, X)
shap_values = explainer.shap_values(X)
# 绘制蜂群图
# shap.summary_plot(shap_values, X[0:1, :, :])
shap.summary_plot(shap_values, X)
在运行代码时出现了下述问题:
raise ValueError(
ValueError: Input 0 of layer "lstm" is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: (None, 4453, 1, 7)
尽管这个问题可能是非常好解决的,但是此刻的我暂无头绪,因此特来请教。