如何在PyTorch中查找元素级余数?
当张量除以另一个张量时,可以使用 **torch.remainder()** 方法计算元素级的余数。我们也可以使用 **torch.fmod()** 来查找余数。
这两种方法的区别在于,在 **torch.remainder()** 中,如果结果的符号与除数的符号不同,则将除数添加到结果中;而在 **torch.fmod()** 中,则不会添加。
语法
torch.remainder(input, other) torch.fmod(input, other)
参数
**输入 (Input)** – 它是PyTorch张量或标量,即 **被除数**。
**其他 (Other)** – 它也是PyTorch张量或标量,即 **除数**。
输出
它返回一个包含元素级余数值的张量。
步骤
导入torch库。
定义张量,即被除数和除数。
计算 **torch.remainder(input, other)** 或 **torch.fmod(input, other)**。它会返回一个包含余数值的张量。
显示计算得到的余数张量。
示例1
在下面的Python程序中,我们将看到如何找到张量除以标量时得到的余数。
# Python program to find remainder using torch.remainder() # import the library import torch # define a tensor tensor1 = torch.tensor([10,-22,31,-47]) # print the created tensors print("Tensor 1:", tensor1) print("Divisor:", 5) # compute the element-wise remainder tensor/scalar rem = torch.remainder(tensor1, 5) print("Remainder:", rem)
输出
Tensor 1: tensor([ 10, -22, 31, -47]) Divisor: 5 Remainder: tensor([0, 3, 1, 3])
示例2
# Python program to find remainder using torch.fmod() # import necessary libraries import torch # define a tensor tensor1 = torch.tensor([10,-22,31,-47]) # print the created tensors print("Tensor 1:", tensor1) print("Divisor:", 5) # compute the element-wise remainder of tensor/scalar rem = torch.fmod(tensor1, 5) print("Remainder:", rem)
输出
Tensor 1: tensor([ 10, -22, 31, -47]) Divisor: 5 Remainder: tensor([ 0, -2, 1, -2])
注意上面两个示例输出的区别。在这两个示例中,我们使用了相同的输入,但使用了不同的方法来计算余数。在示例1中,我们使用 **torch.remainder()**,而在示例2中,我们使用 **torch.fmod()**。
示例3
# import necessary libraries import torch # define two tensors tensor1 = torch.tensor([10,22,31,47]) tensor2 = torch.tensor([2,3,4,5]) # print the created tensors print("Tensor 1:", tensor1) print("Tensor 2:", tensor2) # compute the element-wise remainder of tensor1/tensor2 rem = torch.remainder(tensor1, tensor2) print("Remainder:", rem)
输出
Tensor 1: tensor([10, 22, 31, 47]) Tensor 2: tensor([2, 3, 4, 5]) Remainder: tensor([0, 1, 3, 2])
示例4
# import necessary libraries import torch # define two tensors tensor1 = torch.tensor([10.,22.,31.,47.]) tensor2 = torch.tensor([0,3,0,5]) # print the created tensors print("Tensor 1:", tensor1) print("Tensor 2:", tensor2) # compute the element-wise remainder of tensor1/tensor2 rem = torch.remainder(tensor1, tensor2) print("Remainder:", rem)
输出
Tensor 1: tensor([10., 22., 31., 47.]) Tensor 2: tensor([0, 3, 0, 5]) Remainder: tensor([nan, 1., nan, 2.])
广告