问题标签 [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.

0 投票
0 回答
75 浏览

maps - Swin Transformer 注意力图可视化

我正在使用 Swin Transformer 解决多类多标签分类的分层问题。我想在我的输入图像上可视化自我注意图,试图从模型中提取它们,不幸的是我没有成功完成这项任务。你能给我一个提示吗?我与您分享我尝试执行此任务的代码部分。

0 投票
1 回答
77 浏览

python - Keras MultiHeadAttention layer throwing IndexError: tuple index out of range

在尝试对一维向量进行自我关注时,我一遍又一遍地遇到此错误,我真的不明白为什么会发生这种情况,任何帮助将不胜感激。

错误:

0 投票
0 回答
37 浏览

python - 坚持自我注意实施

在 tensorflow Keras 中通过一些修改(例如,残差(添加连接))实现自我关注。

我有以下输入形状:

我的输入: KerasTensor(type_spec=TensorSpec(shape=(None, 8, 6, 64), dtype=tf.float32, name=None), name='multiply/mul:0', description="created by layer 'multiply'")

我的目标是通过自我关注一个一个地处理TensorSpec(shape=(None, 8, 6, 64)8个时间戳6 * 64))并获得每个时间戳的自我关注特征图,然后将其再次连接成输出张量形状(None, 8, 6, 64)

我实现自我关注的代码:

我被困在哪里

我正在尝试将这些自注意力特征图一一连接并获得输出张量(无、8、6、64),但未能成功。请你帮我解决这个问题。其次,请验证,我实现的功能(my_self_attention 和 conv1d)是可以的。

谢谢

0 投票
0 回答
3 浏览

transformer - Why in transformer the larger attention score between two tokens, the more similar they are after final layer?

In the last self-attention layer of transformer, it seems that the larger attention score between two tokens, the more similar they will be after that layer, i.e. they are very close in the vector space. But I don't know the reason. Can someone explain it?

0 投票
0 回答
6 浏览

batch-processing - 当batch size不同时,如何确定self-attention的wq、Wk和WV的大小

我打算在pyG mini-batch上使用self-attention,wq,WK,WV大小应该是[batch_nodes],[batch_num_nodes],[batch_num_nodes] 但是现在有问题了。由于每个 Nini-Batch 图中的节点数量不同,因此 wq、Wk 和 WV 的维度一直在变化。请问这种情况怎么处理?

在此处输入图像描述

0 投票
0 回答
9 浏览

python - mini_batch 中不同的节点号

我对图神经网络相当陌生,我正在使用自我注意力训练一个 GNN 模型,我有几个问题。

问题是我的节点数和 node_num 在每批中都不同,因此在第一批中我有:

批次(批次=[1181],edge_attr=[1975, 3],edge_index=[2, 1975],x=[1181, 300])

在第二批我有: batch=[1134], edge_attr=[1635, 3], edge_index=[2, 1635], x=[1134, 300]

batch1 有 1181 个节点,而 batch2 有 1134 个节点

当我试图计算节点之间的self attention时,我遇到了以下问题

这是自我关注的工作原理

在此处输入图像描述

Q、W、K 计算如下: 在此处输入图像描述

wq, wk, wv 的维数为

self.w_1 = 参数(torch.Tensor(self.nodes_num, self.nodes_num))

所以我遇到的问题是这个

在 batch1 中 wq, wk, wv 的维度是 s​​elf.w_q = Param(torch.Tensor(1181, 1181)) 在 batch2 中 wq, wk, wv 的维度是 s​​elf.w_q = Param(torch.Tensor (1134, 1134)) 维度随着节点的数量而变化,导致 w_q 不断被重新定义

这是否相当于模型只使用了一批样本?

如果是这样,我该如何解决这个问题?

0 投票
0 回答
26 浏览

deep-learning - 预测值和真实值之间的差异很大,但是损失很小

我有一个包含 N 个细胞运动轨迹的 3D 点云数据,我想建立一个回归模型来预测细胞运动速度。

我创建了模拟数据集并将细胞移动速度设置为 0.00024 或 0.00014。

我希望我可以通过回归模型来预测这个值。

我使用 MAE 损失函数 nn.L1Loss() 来计算损失。

但在训练过程中,损失一开始非常低,很快收敛。但预测结果与真实值相差很大。我对数据进行了标准化,但仍然得到了类似的结果。