PytorchにはNumpyの要素単位の等価な 論理演算子 (logical_and
、logical_or
、logical_not
、logical_xor
)? PytorchテンソルでNumpy関数を呼び出すと、CPUを使用するときに十分に機能し、出力としてPytorchテンソルを生成するように見えます。 pytorch計算がGPUで実行されている場合、これはあまりうまく機能しないと思うので、主に尋ねます。
私は、文字列 "and"を含むすべての関数で Pytorchのドキュメントインデックス を調べましたが、関連するものはありません。
更新: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)
ロジックと:
a * b
ロジックまたは:
a + b