gpt4 book ai didi

tensorflow - Keras 不同注意力层之间的差异

转载 作者:行者123 更新时间:2023-12-04 13:57:42 25 4
gpt4 key购买 nike

我正在尝试为我的文本分类模型添加一个注意层。输入是文本(例如电影评论),输出是二元结果(例如正面与负面)。

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.layers.Attention Keras 内置的层。还有 SeqWeightedAttentionSeqSelfAttention layer在 keras-self-attention 包中。作为深度学习领域的新手,我很难理解这些层背后的机制。

这些层有什么作用?哪一个最适合我的模型?

非常感谢!

最佳答案

如果您使用 RNN,我不建议使用 keras.layers.Attention 类。
在分析 tf.keras.layers.Attention Github 代码以更好地理解如何使用相同的代码时,我遇到的第一行是 - “此类适用于 Dense 或 CNN 网络,而不适用于 RNN 网络”
Cyber​​ZHG 维护的另一个开源版本称为
keras-自我注意。据我所知,这不是 Keras 或 TensorFlow 库的一部分,似乎是一段独立的代码。这包含您提到的两个类 - SeqWeightedAttention 和 SeqSelfAttention 层类。前者返回一个 2D 值,后者返回一个 3D 值。所以 SeqWeightedAttention 应该适合你的情况。前者似乎松散地基于 Raffel 等人,可用于 Seq 分类,后者似乎是 Bahdanau 的变体。
一般来说,我建议您编写自己的 seq 到分类模型。可以在不到六行代码中添加注意力片段(基​​本要素)……比您花在集成、调试或理解这些外部库中的代码上的时间少得多。
请引用:Create an LSTM layer with Attention in Keras for multi-label text classification neural network

关于tensorflow - Keras 不同注意力层之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58546876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com