Я использую RNN для создания простого классификатора, чтобы классифицировать абзац слов в разных каталогах.у него есть слой внедрения, за которым следует RNN, а затем показывается плотный слой, как показано ниже.
Он может правильно прогнозировать, но кроме прогноза, как я могу узнать, почему RNN получил это предсказание, например, что такоевес в каждом слове абзаца.
Какие слова заставили RNN полагать, что он принадлежит определенному каталогу?
model = Sequential()
embedding_size = 300
model.add(Embedding(input_dim=num_words+1, output_dim=embedding_size, input_length=max_tokens, name='layer_embedding', weights=embedding_matrix],trainable=True))
return_sequences=True))
model.add(Bidirectional(GRU(32,return_sequences=True)))
model.add(Bidirectional(GRU(32,return_sequences=True)))
model.add(Bidirectional(GRU(32)))
model.add(Dense(numdense, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])