如何在Lime中使用1D-CNN模型?

时间:2020-01-30 22:57:47

标签: python keras lime

我有一个数字健康记录数据集。我将一维CNN keras模型用于分类步骤。

我在Python中提供了可复制的示例:

return

将石灰应用于一维CNN模型时出现此错误

import tensorflow as tf
import keras
from keras.models import Sequential
from keras.layers import Conv1D, Activation, Flatten, Dense
import numpy as np

a = np.array([[0,1,2,9,3], [0,5,1,33,6], [1, 12,1,8,9]])
train = np.reshape(a[:,1:],(a[:,1:].shape[0], a[:,1:].shape[1],1))
y_train = keras.utils.to_categorical(a[:,:1])

model = Sequential()
model.add(Conv1D(filters=2, kernel_size=2, strides=1, activation='relu', padding="same", input_shape=(train.shape[1], 1), kernel_initializer='he_normal'))

model.add(Flatten())
model.add(Dense(2, activation='sigmoid'))

model.compile(loss=keras.losses.binary_crossentropy,
                 optimizer=keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False),
                 metrics=['accuracy'])

model.fit(train, y_train, epochs=3, verbose=1)

IndexError: boolean index did not match indexed array along dimension 1; dimension is 4 but corresponding boolean dimension is 1

有解决方案吗?

1 个答案:

答案 0 :(得分:0)

您应该尝试使用 lime_tabular.RecurrentTabularExplainer 而不是LimeTabularExplainer。它是keras式递归神经网络的解释器。查看LIME文档中的示例,以更好地理解。祝你好运:)