當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch remainder()用法及代碼示例


PyTorchremainder()方法計算除法運算的逐元素餘數(被除數除以除數)。被除數是一個張量,而除數可以是一個數字或張量。此方法應用模運算,如果結果的符號與除數不同,則將除數添加到模結果中。此方法僅支持整數和浮點值輸入。以下是該方法的語法 -

用法: torch.remainder(input, other, out=None)

參數:

  • 輸入:被除數(張量)。
  • other:除數(張量或數字)。

返回: 它返回一個帶有餘數值的張量。

讓我們了解一下火炬。remainder()方法並借助一些 Python 示例。

示例 1:

在下麵的 Python 示例中,我們計算火炬張量除以數字時的餘數。

這裏,-13 除以 5,餘數是 2。怎麽樣? mod(-13, 5) = -3,則 -3+5 = 2。當模值與除數不同時,將除數與模相加。請注意當除數為 -5 時餘數有何不同。

Python3


# Python 3 program to demonstrate the  
# torch.remainder() method 
# importing torch 
import torch 
  
# define the dividend 
x = torch.tensor([5, -13, 24, -7, 7]) 
print("Dividend:", x) 
  
# define the divisor 
y = 5
print("Divisor:",y) 
  
# compute the remainder 
remainder = torch.remainder(x,y) 
print("Remainder:",remainder) 
z = -5
print("Divisor:",z) 
remainder = torch.remainder(x,z) 
print("Remainder:",remainder)

輸出:

Dividend: tensor([  5, -13,  24,  -7,   7])
Divisor: 5
Remainder: tensor([0, 2, 4, 3, 2])
Divisor: -5
Remainder: tensor([ 0, -3, -1, -2, -3])

示例 2:

在下麵的 Python 示例中,當被除數和除數都是 torch 張量時,我們計算逐元素餘數。

Python3


# Python 3 program to demonstrate the  
# torch.remainder() method 
# importing torch 
import torch 
  
# define the dividend 
x = torch.tensor([15, -13, 15, -15, 0]) 
print("Dividend:", x) 
  
# define the divisor 
y = torch.tensor([7, 7, -7, -7, 7]) 
print("Divisor:",y) 
  
# compute the remainder 
remainder = torch.remainder(x,y) 
print("Remainder:",remainder)

輸出:

Dividend: tensor([ 15, -13,  15, -15,   0])
Divisor: tensor([ 7,  7, -7, -7,  7])
Remainder: tensor([ 1,  1, -6, -1,  0])

示例 3:

在下麵的示例中,我們按照示例 2 中的方法查找餘數,但針對的是浮點張量。

Python3


# Python 3 program to demonstrate the  
# torch.remainder() method for float values 
# importing torch 
import torch 
  
# define the dividend 
x = torch.tensor([15., -13., 15., -15., 0]) 
print("Dividend:", x) 
  
# define the divisor 
y = torch.tensor([7., 7., -7., -7., 7.]) 
print("Divisor:",y) 
  
# compute the remainder 
remainder = torch.remainder(x,y) 
print("Remainder:",remainder)

輸出:

Dividend: tensor([ 15., -13.,  15., -15.,   0.])
Divisor: tensor([ 7.,  7., -7., -7.,  7.])
Remainder: tensor([ 1.,  1., -6., -1.,  0.])

示例4:

在下麵的示例中,嘗試求除以零或無窮大時的餘數。

請注意,當除數為零時,無論股息值如何,餘數都是 nan(非數字)。當非零除以無窮大時,餘數為無窮大,但當零除以無窮大時,餘數為 0。另請注意,兩個張量都是浮點張量。請參閱下一個整數除以零的示例。

Python3


# Python 3 program to demonstrate the  
# torch.remainder() method 
# importing torch 
import torch 
import numpy as np 
  
# define the dividend 
x = torch.tensor([15., -13., 0., -15., 0]) 
print("Dividend:", x) 
  
# define the divisor 
y = torch.tensor([0., np.inf, 0., 0., np.inf]) 
print("Divisor:",y) 
  
# compute the remainder 
remainder = torch.remainder(x,y) 
print("Remainder:",remainder)

輸出:

Dividend: tensor([ 15., -13.,   0., -15.,   0.])
Divisor: tensor([0., inf, 0., 0., inf])
Remainder: tensor([nan, inf, nan, nan, 0.])

實施例5:

在此示例中,我們嘗試求整數除以零時的餘數。

請注意,在整數被除數的情況下,它會引發運行時錯誤,而在浮點被除數的情況下,它會將餘數返回為 nan(如示例 4 所示)。

Python3


# Python 3 program to demonstrate the  
# torch.remainder() method 
# importing torch 
import torch 
import numpy as np 
  
# define the dividend 
x = torch.tensor([15]) 
print("Dividend:", x) 
  
# define the divisor 
y = torch.tensor([0]) 
print("Divisor:",y) 
  
# compute the remainder 
remainder = torch.remainder(x,y) 
print("Remainder:",remainder)

輸出:

Dividend: tensor([15])
Divisor: tensor([0])


RuntimeError: ZeroDivisionError


相關用法


注:本文由純淨天空篩選整理自shahidedu7大神的英文原創作品 Python PyTorch remainder() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。