Python 检查张量的每个元素是否包含在列表中
假设我有一个张量Python 检查张量的每个元素是否包含在列表中,python,pytorch,comparison,Python,Pytorch,Comparison,假设我有一个张量a和一个值容器vals。是否有一种干净的方法返回与a形状相同的布尔张量,每个元素都是a的元素是否包含在vals中?e、 g: A=火炬张量([[1,2,3], [4,5,6]]) VAL=[1,5] #所需输出 火炬张量([[真,假,假], [假,真,假]] 您可以通过for循环实现这一点: sum(A==i代表B中的i).bool() 您可以这样做: result = A.apply_(lambda x: x in vals).bool() 然后,结果将包含此张量: ten
a
和一个值容器vals
。是否有一种干净的方法返回与a
形状相同的布尔张量,每个元素都是a
的元素是否包含在vals
中?e、 g:
A=火炬张量([[1,2,3],
[4,5,6]])
VAL=[1,5]
#所需输出
火炬张量([[真,假,假],
[假,真,假]]
您可以通过for循环实现这一点:
sum(A==i代表B中的i).bool()
您可以这样做:
result = A.apply_(lambda x: x in vals).bool()
然后,结果
将包含此张量:
tensor([[ True, False, False],
[False, True, False]])
这里我只使用了一个lambda函数和apply_uu方法,您可以在中找到
[list(map(lambda x: x in vals, thelist)) for thelist in A]