问题标签 [self-attention]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nlp - 如何在 selfAttention 类中使用多头选项?
我正在玩trax库中的自注意力模型。
当我设置时n_heads=1
,一切正常。但是当我设置时n_heads=2
,我的代码会中断。
我只使用输入激活和一个 SelfAttention 层。
这是一个最小的代码:
但我有一个错误:
我做错了什么?
deep-learning - 为什么注意力层需要“value”、“key”和“query”?
我正在学习有关“变压器”模型的基本思想。根据我看到的论文和教程,“注意力层”使用神经网络来获取“值”、“键”和“查询”。
这是我从网上学到的注意力层。
我很困惑的一件事是为什么我们需要“键”、“值”和“查询”?我可以只使用其中一个吗?或者我可以设置除这三个之外的更多值吗?看起来这三个值只是由三个单层神经网络转换而成。
matrix-multiplication - 关于 Inference 期间 Transformer 解码器注意力层中使用的标记的问题
我正在查看解码器期间使用的形状(self-attention 和 enc-dec-attention 块),并了解解码器在训练期间的运行方式与基于此链接和原始Attention 论文的推理期间的运行方式有所不同
在推理中,它使用在该时间步(例如第时间步)之前生成的所有先前标记k
,如下图所示并在此链接中进行了解释。
问题:
然而,当我查看解码器自注意力中 QKV 投影的实际形状,并将解码器自注意力输出馈送到“enc-dec-attention”的 Q 矩阵时,我只看到输出中的 1 个标记是用过的。
我很困惑解码器的自注意力和 enc-dec-attention 中所有矩阵的形状如何在推理过程中与解码器的可变输入长度相匹配。我查看了几个在线材料,但找不到答案。我只看到解码器的自我注意(不是 enc-dec-attention)中的 BGemms 使用可变形状,直到所有前面的k
步骤,但所有其他 Gemms 都是固定大小的。
- 这怎么可能?是否只有 1 个令牌(来自解码器输出的最后一个)用于自我注意中的 qkv matmuls 和 enc-dec-attention 中的 Q-matmul(这是我在运行模型时看到的)?
- 有人可以详细说明一下 QKV 在 self-attention 中的所有这些形状和在 enc-dec-attention 中的 Q 与解码器输入长度在每个时间步的不同之处如何匹配?**
另一个显示解码器中的自我注意和 enc-dec-attention 的图表:
pytorch - 如何使用 Pytorch 在我的模型中更改自注意力层数和多头注意力头数?
我正在研究讽刺数据集和我的模型,如下所示:
我首先标记我的输入文本:
然后我为我的数据集定义了类:
然后我从我的类中为训练集创建 obj 并设置其他参数:
然后我使用数据加载器来训练我的数据:
我的问题是如何在我的模型中更改自我注意层数和多头注意头?
python - 如何处理具有维度无的张量乘法
例如,当我使用时,我有 2 个张量 A 和 B 都有维度(无,HWC)
结果维度将是(HWC,HWC),这是正确的,但我想保留无维度,以便它可以是(无,HWC,HWC)。有没有办法做到这一点?
python - ValueError:形状 (None, 5) 和 (None, 15, 5) 不兼容
我想实现杨提出的文档分类的分层注意机制。但我想用 Transformer 替换 LSTM。
我使用了 Apoorv Nandan 的带有 Transformer 的文本分类: https ://keras.io/examples/nlp/text_classification_with_transformer/
我已经将 Transformer 分层实现到分类。一个用于句子表示,另一个用于文档表示。代码如下:
一切正常(为了测试,您可以将其复制并粘贴到 googlecolab 中)。但是当我通过以下代码编译和拟合模型时,它会引发错误:
错误是:
keras - 如何在 Keras 中实现分层 Transformer 用于文档分类?
Yang等人提出了文档分类的分层注意机制。 https://www.cs.cmu.edu/~./hovy/papers/16HLT-hierarchical-attention-networks.pdf
它的实现在https://github.com/ShawnyXiao/TextClassification-Keras上可用
此外,可以在https://keras.io/examples/nlp/text_classification_with_transformer上使用 Transformer 实现文档分类
但是,它不是分层的。
我用谷歌搜索了很多,但没有找到分层 Transformer 的任何实现。有谁知道如何在 Keras 中实现用于文档分类的分层转换器?
我的实现如下。请注意,该实现从 Nandan 实现扩展为文档分类。https://keras.io/examples/nlp/text_classification_with_transformer。
模型总结如下:
一切正常,您可以将这些代码复制并粘贴到 colab 中以查看模型的摘要。但是,我的问题是句子级别的位置编码。如何在句子级别应用位置编码?
conv-neural-network - 对于图像或序列,转换器使用什么属性?
今天我的老师问我一个问题:他说CNN是使用图像或矩阵的平移不变性。那么 Transformer 使用的属性是什么???