比较与torch.logical_not的功能差异
torch.logical_not
class torch.logical_not(input, out=None)
更多内容详见 torch.logical_not。
mindspore.numpy.logical_not
class mindspore.numpy.logical_not(a, dtype=None)
更多内容详见 mindspore.numpy.logical_not。
使用方式
PyTorch: 计算给定输入张量的逐元素逻辑非。零被视为“False”,非零被视为“True”。
MindSpore: 按元素计算输入张量的逻辑非。输入应该是一个dtype为bool的张量。
代码示例
import mindspore.numpy as np
import torch
# MindSpore
print(np.logical_not(np.array([True, False])))
# Tensor(shape=[2], dtype=Bool, value= [False, True])
print(np.logical_not(np.array([0, 1, -10])))
# TypeError: For 'LogicalNot or '~' operator', the type of `x` should be subclass of Tensor[Bool], but got Tensor[Int32].
# PyTorch
print(torch.logical_not(torch.tensor([True, False])))
# tensor([False, True])
print(torch.logical_not(torch.tensor([0, 1, -10], dtype=torch.int8)))
# tensor([ True, False, False])
print(torch.logical_not(torch.tensor([0., 1.5, -10.], dtype=torch.double)))
# tensor([ True, False, False])
print(torch.logical_not(torch.tensor([0., 1., -10.], dtype=torch.double), out=torch.empty(3, dtype=torch.int16)))
# tensor([1, 0, 0], dtype=torch.int16)