我如何 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
。您会注意到 pred
比 mask
多一维。我怎样才能做到这一点?
mask = mask.unsqueeze(2)
new_pred = pred * mask
这将增加额外的维度。现在 [4, 53, 1]
。休息将负责广播。 (如果你做一些操作)
假设你有一个形状为 [4, 53, 164]
的张量,现在你想将其缩减为 [4, 53]
那么你可以像这样应用算术运算 new_pred.mean(2)
.
我有一个张量 pred
,它的 .size()
为 [4, 53, 161]
。我有另一个张量 mask
,它的 .size()
为 [4, 53]
。
mask
只有0和1。我想要做的是获取 pred
的值,其中 mask
的值为 1
。您会注意到 pred
比 mask
多一维。我怎样才能做到这一点?
mask = mask.unsqueeze(2)
new_pred = pred * mask
这将增加额外的维度。现在 [4, 53, 1]
。休息将负责广播。 (如果你做一些操作)
假设你有一个形状为 [4, 53, 164]
的张量,现在你想将其缩减为 [4, 53]
那么你可以像这样应用算术运算 new_pred.mean(2)
.