如何在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.])

更新于:2021年12月6日

245次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告