Как использовать модель 1D-CNN в Lime? - PullRequest
0 голосов
/ 31 января 2020

У меня есть набор данных о состоянии здоровья c. Я использовал 1D модель CNN keras для этапа классификации.

Я даю воспроизводимый пример в Python:

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)

Я получаю эту ошибку, когда применяю извести к моему 1D Модель CNN

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

explainer = lime.lime_tabular.LimeTabularExplainer(train)

Есть ли решение?

1 Ответ

0 голосов
/ 06 февраля 2020

Вы должны попробовать lime_tabular.RecurrentTabularExplainer вместо LimeTabularExplainer. Это объяснение для рекуррентных нейронных сетей в стиле керас. Посмотрите примеры в документации LIME для лучшего понимания. Удачи:)

...