El método PyTorch rest () calcula el resto de elementos de la operación de división (el dividendo se divide por el divisor). El dividendo es un tensor mientras que el divisor puede ser un número o un tensor. Este método aplica la operación de módulo y si el signo del resultado es diferente del divisor, el divisor se suma al resultado del módulo. Este método solo admite entradas con valores enteros y flotantes. A continuación se muestra la sintaxis de este método:
Sintaxis: torch.remainder(entrada, otro, salida=Ninguno)
Parámetros:
- entrada: el dividendo (tensor).
- otro: el divisor (tensor o número).
Retorno: Devuelve un tensor con valores de resto.
Entendamos el método torch.remainder() con la ayuda de algunos ejemplos de Python.
Ejemplo 1:
En el siguiente ejemplo de Python, calculamos el resto cuando un tensor de antorcha se divide por un número.
Aquí, la división de -13 por 5, el resto es 2. ¿Cómo? mod(-13, 5) = -3, luego -3+5 = 2. Cuando el valor del módulo es diferente del divisor, el divisor se suma al módulo. Observa cómo los residuos son diferentes cuando el divisor es -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)
Producción:
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])
Ejemplo 2:
En el siguiente ejemplo de Python, calculamos el resto de los elementos cuando tanto el dividendo como el divisor son tensores de antorcha.
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)
Producción:
Dividend: tensor([ 15, -13, 15, -15, 0]) Divisor: tensor([ 7, 7, -7, -7, 7]) Remainder: tensor([ 1, 1, -6, -1, 0])
Ejemplo 3:
En el siguiente ejemplo, encontramos el resto como lo hicimos en el Ejemplo 2 pero para los tensores de punto flotante.
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)
Producción:
Dividend: tensor([ 15., -13., 15., -15., 0.]) Divisor: tensor([ 7., 7., -7., -7., 7.]) Remainder: tensor([ 1., 1., -6., -1., 0.])
Ejemplo 4:
En el siguiente ejemplo, intente encontrar el resto cuando se divide por cero o infinito.
Tenga en cuenta que cuando el divisor es cero, el resto es nan (no es un número), independientemente del valor del dividendo. Cuando un distinto de cero se divide por infinito, el resto es infinito, pero cuando cero se divide por infinito, el resto es 0. También observe que ambos tensores son tensores de punto flotante. Vea el siguiente ejemplo cuando un número entero se divide por cero.
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)
Producción:
Dividend: tensor([ 15., -13., 0., -15., 0.]) Divisor: tensor([0., inf, 0., 0., inf]) Remainder: tensor([nan, inf, nan, nan, 0.])
Ejemplo 5:
En este ejemplo, tratamos de encontrar el resto cuando un número entero se divide por cero.
Tenga en cuenta que en el caso del dividendo entero arroja un error de tiempo de ejecución, mientras que en el caso del dividendo de punto flotante devuelve el resto como nan (como en el Ejemplo 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)
Producción:
Dividend: tensor([15]) Divisor: tensor([0]) RuntimeError: ZeroDivisionError
Publicación traducida automáticamente
Artículo escrito por shahidedu7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA