我正在尝试为我的文本分类模型添加注意力层。输入是文本(例如电影评论),输出是二元结果(例如正面 vs 负面)。
model = Sequential()
model.add(Embedding(max_features, 32, input_length=maxlen))
model.add(Bidirectional(CuDNNGRU(16,return_sequences=True)))
##### add attention layer here #####
model.add(Dense(1, activation='sigmoid'))
经过一番搜索,我找到了几个可供Keras使用的注意力层。其中有内置在Keras中的keras.layers.Attention
层。还有在keras-self-attention包中的SeqWeightedAttention
和SeqSelfAttention
层。作为一个相对新手的深度学习领域的人,我很难理解这些层背后的机制。
每个层都是做什么的?哪一个对我的模型最好呢?
非常感谢!