我如何 select 基于 PyTorch 掩码的多维张量的所有值?

How can I select all values of a multi dimensional tensor based on a mask with PyTorch?

我有一个张量 pred,它的 .size()[4, 53, 161]。我有另一个张量 mask,它的 .size()[4, 53]

mask只有0和1。我想要做的是获取 pred 的值,其中 mask 的值为 1。您会注意到 predmask 多一维。我怎样才能做到这一点?

mask = mask.unsqueeze(2)
new_pred = pred * mask

这将增加额外的维度。现在 [4, 53, 1]。休息将负责广播。 (如果你做一些操作)

假设你有一个形状为 [4, 53, 164] 的张量,现在你想将其缩减为 [4, 53] 那么你可以像这样应用算术运算 new_pred.mean(2).