我正在实现一个基于内存网络的模型。我有(context, query, answer)
的三胞胎数据。我想计算一下注意力。注意是指上下文中哪些句子应该被集中。在
为了形成小批量,我使用零填充来创建context
数据。以下是注意力数据。和0值显示零填充上下文的嵌入结果。
在这样的数据中,我想将softmax应用于索引0, 1, 2, 3, last
。所以模型应该忽略零填充列。在
那么我如何认识到这一点呢?我想知道当我们使用零填充和注意力机制时的一种技巧。虽然我更喜欢Pythorch,但是任何工具或只是描述的答案也会很受欢迎。在
Before softmax. torch.bmm(contex, q)
109.8601
77.6376
68.3927
199.1673
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
348.0155
[torch.cuda.FloatTensor of size 15 (GPU 0)]
After softmax. F.softmax( torch.bmm(contex, q) )
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
[torch.cuda.FloatTensor of size 15 (GPU 0)]
你可以用Pythorch中的另一个张量来下标你的张量。在
因此,如果我有:
那么
^{pr2}$所以在你的例子中,如果你有你的形状
logits
,你可以这样做相关问题 更多 >
编程相关推荐