isin¶
检验 x
中的每一个元素是否在 test_x
中。
参数¶
x (Tensor) - 输入的 tensor,数据类型为:'bfloat16', 'float16', 'float32', 'float64', 'int32', 'int64'。
test_x (Tensor) - 用于检验的 tensor,数据类型为:'bfloat16', 'float16', 'float32', 'float64', 'int32', 'int64'。
assume_unique (bool,可选) - 如果设置为 True,表示
x
与test_x
的元素均是唯一的,这种情况可以提升计算的速度。默认值为 False。invert (bool,可选) - 是否输出反转的结果。如果为 True,表示将结果反转。默认值为 False。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
Tensor
,输出的 tensor 与输入 x
形状相同。
代码示例¶
>>> import paddle
>>> paddle.set_device('cpu')
>>> x = paddle.to_tensor([-0., -2.1, 2.5, 1.0, -2.1], dtype='float32')
>>> test_x = paddle.to_tensor([-2.1, 2.5], dtype='float32')
>>> res = paddle.isin(x, test_x)
>>> print(res)
Tensor(shape=[5], dtype=bool, place=Place(cpu), stop_gradient=True,
[False, True, True, False, True])
>>> x = paddle.to_tensor([-0., -2.1, 2.5, 1.0, -2.1], dtype='float32')
>>> test_x = paddle.to_tensor([-2.1, 2.5], dtype='float32')
>>> res = paddle.isin(x, test_x, invert=True)
>>> print(res)
Tensor(shape=[5], dtype=bool, place=Place(cpu), stop_gradient=True,
[True, False, False, True, False])
>>> # Set `assume_unique` to True only when `x` and `test_x` contain unique values, otherwise the result may be incorrect.
>>> x = paddle.to_tensor([0., 1., 2.]*20).reshape([20, 3])
>>> test_x = paddle.to_tensor([0., 1.]*20)
>>> correct_result = paddle.isin(x, test_x, assume_unique=False)
>>> print(correct_result)
Tensor(shape=[20, 3], dtype=bool, place=Place(cpu), stop_gradient=True,
[[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False],
[True , True , False]])
>>> incorrect_result = paddle.isin(x, test_x, assume_unique=True)
>>> print(incorrect_result)
Tensor(shape=[20, 3], dtype=bool, place=Place(gpu:0), stop_gradient=True,
[[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , True ],
[True , True , False]])