Pytorch Pyrotch转移指数为1-0
如何快速将给定索引列表中的元素设置为1,将其他元素设置为0 例如,我有一个ID池,如: 火炬阿兰奇(10),Pytorch Pyrotch转移指数为1-0,pytorch,Pytorch,如何快速将给定索引列表中的元素设置为1,将其他元素设置为0 例如,我有一个ID池,如: 火炬阿兰奇(10), 对于给定的输入索引张量([1,5,7,9,2])要返回张量([0,1,1,0,0,1,0,1])最简单的方法是从零开始,用一填充,使用如下奇特的索引: import torch tensor = torch.zeros(10) tensor[[1, 5, 7, 9, 2]] = 1 如果您的ID是预定义的(例如,torch.arange(10)),并且您只想获取非zero的元素,则可
对于给定的输入索引
张量([1,5,7,9,2])
要返回张量([0,1,1,0,0,1,0,1])
最简单的方法是从零开始,用一填充,使用如下奇特的索引:
import torch
tensor = torch.zeros(10)
tensor[[1, 5, 7, 9, 2]] = 1
如果您的ID是预定义的(例如,torch.arange(10)
),并且您只想获取非zero
的元素,则可以执行以下操作:
import torch
ids = torch.arange(10)
mask = torch.zeros_like(ids).bool() # it has to be bool
mask[[1, 5, 7, 9, 2]] = True
torch.masked_select(ids, mask)
这将给你:
tensor([1, 2, 5, 7, 9])
谢谢Szymon,我也认为使用np.isin()是解决这个问题的一种方法,但我不确定哪种方法更快。