2024-04-19 04:39:30 发布
网友
我有两个大小不等的张量
a = torch.tensor([[1,2], [2,3],[3,4]]) b = torch.tensor([[4,5],[2,3]])
我想要一个布尔数组,用于确定每个值是否存在于另一个张量中,而无需迭代。差不多
a in b
结果应该是
[False, True, False]
因为只有a[1]的值在b中
如果需要在a的第一个维度上比较所有子传感器,请使用in:
a
in
>>> [i in b for i in a] [False, True, False]
这应该行得通
result = [] for i in a: try: # to avoid error for the case of empty tensors result.append(max(i.numpy()[1] == b.T.numpy()[1,i.numpy()[0] == b.T.numpy()[0,:]])) except: result.append(False) result
我认为不使用至少某种类型的迭代是不可能的。我能管理的最简洁的方法是使用列表理解:
[True if i in b else False for i in a]
检查b中a中的元素并给出[False,True,False]。也可以反转以获得b中的元素a[假,真]
如果需要在
a
的第一个维度上比较所有子传感器,请使用in
:这应该行得通
我认为不使用至少某种类型的迭代是不可能的。我能管理的最简洁的方法是使用列表理解:
检查b中a中的元素并给出[False,True,False]。也可以反转以获得b中的元素a[假,真]
相关问题 更多 >
编程相关推荐