我正在使用RNN构建一个简单的分类器,将一段单词分类到不同的目录中。它有一个嵌入层,然后是RNN,然后是Dense层,如下所示。
它可以正确预测,但除了预测之外,我怎么知道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'])
答案 0 :(得分:1)
This post on GitHub提出了一种在打印时查看参数名称的方法:
for e in zip(model.layers[0].trainable_weights, model.layers[0].get_weights()):
print('Param %s:\n%s' % (e[0],e[1]))