【问题标题】:Compute the weighted average in PyTorch在 PyTorch 中计算加权平均值
【发布时间】:2021-11-21 03:32:35
【问题描述】:

假设我们有一个张量 A,形状为

CxH

还有张量W,代表权重,形状为H

张量 A 表示H(展平)中每个空间位置的一些特征,C 暗淡,权重 W 表示每个空间位置的权重。而不是通过以下方式计算平均值:

torch.mul(A, W).mean(1) 

我们如何计算加权平均值? 输出昏暗的大小应为C

会是:

Z = torch.mul(A, W)
Weighted_average = torch.sum(Z, dim=1) / torch.sum(W)

【问题讨论】:

    标签: python matrix pytorch tensor


    【解决方案1】:

    weights W 表示每个空间位置的权重

    这意味着您应该将A 中的每个H 位置与来自W 的相应权重相乘。矩阵乘法进行求和:A@W,然后您可以使用权重向量的总和进行归一化:W.sum()

    所以你的问题似乎是正确的:w_mean = A@W / W.sum()

    另外,您可以计算平均特征而不是归一化,这确实对应于(A*W).mean(1),我们使用* 保留维度(vs. @ 会减少它) , 之后只在axis=1 上取平均值。

    注意@*分别对应torch.matmultorch.mul

    【讨论】:

      猜你喜欢
      • 2016-12-14
      • 2017-04-22
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      相关资源
      最近更新 更多