火炬对不包括索引的每一行求和
Torch sum each row excluding an index
给定一个形状为 (N,C) 的张量 A 和一个形状为 (N,) 的索引张量 Idx,我想对 A 中每一行的所有元素求和,不包括 I 中相应的列索引。例如:
A = torch.tensor([[1,2,3],
[4,5,6]])
Idx = torch.tensor([0,2])
#result:
torch.tensor([[5],
[9]])
已知使用循环的解决方案。
您可以将排除的元素设置为零:
A[range(A.shape[0]),Idx] = 0
并沿行求和张量:
b = A.sum(dim = 1,keepdim = True ) # b = torch.tensor([[5], [9]])
给定一个形状为 (N,C) 的张量 A 和一个形状为 (N,) 的索引张量 Idx,我想对 A 中每一行的所有元素求和,不包括 I 中相应的列索引。例如:
A = torch.tensor([[1,2,3],
[4,5,6]])
Idx = torch.tensor([0,2])
#result:
torch.tensor([[5],
[9]])
已知使用循环的解决方案。
您可以将排除的元素设置为零:
A[range(A.shape[0]),Idx] = 0
并沿行求和张量:
b = A.sum(dim = 1,keepdim = True ) # b = torch.tensor([[5], [9]])