Pytorch 是否具有 Numpy 的元素方面的等价物 logical operators (logical_and
、logical_or
、logical_not
和 logical_xor
)?在使用 CPU 时,在 Pytorch 张量上调用 Numpy 函数似乎工作得很好,甚至生成 Pytorch 张量作为输出。我问的主要是因为我假设如果 pytorch 计算在 GPU 中运行,这将不会很好地工作。
我已经查看了 Pytorch's documentation index在所有包含字符串“and”的函数中,似乎都不相关。
最佳答案
更新:在 Pytorch 1.2 中,PyTorch 引入了 torch.bool
数据类型,可以通过 torch.BoolTensor
使用。 :
>>> a = torch.BoolTensor([False, True, True, False]) # or pass [0, 1, 1, 0]
>>> b = torch.BoolTensor([True, True, False, False])
>>> a & b # logical and
tensor([False, True, False, False])
PyTorch 支持对 ByteTensor
的逻辑运算.您可以使用 &
、|
、^
、~
运算符进行逻辑运算,如下所示:
>>> a = torch.ByteTensor([0, 1, 1, 0])
>>> b = torch.ByteTensor([1, 1, 0, 0])
>>> a & b # logical and
tensor([0, 1, 0, 0], dtype=torch.uint8)
>>> a | b # logical or
tensor([1, 1, 1, 0], dtype=torch.uint8)
>>> a ^ b # logical xor
tensor([1, 0, 1, 0], dtype=torch.uint8)
>>> ~a # logical not
tensor([1, 0, 0, 1], dtype=torch.uint8)
关于python - Pytorch 相当于 Numpy 的 logical_and 和 kin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54590661/