如何计算 PyTorch 中注意力分数和编码器输出的加权平均值?
Posted
技术标签:
【中文标题】如何计算 PyTorch 中注意力分数和编码器输出的加权平均值?【英文标题】:How do I compute the weighted average of attention scores and encoder outputs in PyTorch? 【发布时间】:2021-12-05 19:06:21 【问题描述】:我目前正在尝试在 PyTorch 中实现具有注意力的 LSTM,一旦涉及批量大小和多维张量,我突然忘记了线性代数是如何工作的。我有一个大小为 [64, 19, 1] 的注意力分数张量,其中 64 是批量大小,19 是源句子的最大长度。我还有一个编码器输出的张量(隐藏状态);它的形状是 [64, 19, 256],其中 256 是隐藏状态的维度。计算上下文向量/注意力分数和编码器隐藏状态的加权平均值的好方法是什么?不幸的是,当涉及到两个以上的维度/包括批量大小时,我的大脑无法推理这些事情。
【问题讨论】:
【参考方案1】:就像context = torch.sum(attention * encoder_hidden, dim=1)
一样简单。
【讨论】:
以上是关于如何计算 PyTorch 中注意力分数和编码器输出的加权平均值?的主要内容,如果未能解决你的问题,请参考以下文章
PAT甲题题解-1081. Rational Sum (20)-模拟分数计算