Función torch.add de PyTorch
Manual de referencia de Pytorch torch
torch.addEs una función en PyTorch que se utiliza para realizar la suma elemento a elemento. Suma dos tensores o un tensor y un escalar.
Es una de las operaciones matemáticas más básicas, y se utiliza en varios escenarios de cálculo en el aprendizaje profundo.
Definición de la función
torch.add(input, other, alpha=1, out=None)
Parámetros:
input(Tensor): El primer tensor de entrada.other(Tensor o float): El segundo tensor de entrada o escalar.alpha(float, opcional): factor de escala,otherSe multiplica por este valor y luego se suma ainput..., por defecto es 1.out(Tensor, opcional): El tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve el tensor resultante de la suma.
Ejemplos de uso
Ejemplo 1: Sumar dos tensores
Ejemplo
import torch
# Crear dos tensores
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
# Sumar
c = torch.add(a, b)
print(c)
# Crear dos tensores
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
# Sumar
c = torch.add(a, b)
print(c)
El resultado de salida es:
tensor([5, 7, 9])
Ejemplo 2: Sumar un escalar a un tensor
Ejemplo
import torch
# Crear un tensor
a = torch.tensor([1, 2, 3])
# Sumar el escalar
b = torch.add(a, 10)
print(b)
# Crear un tensor
a = torch.tensor([1, 2, 3])
# Sumar el escalar
b = torch.add(a, 10)
print(b)
El resultado de salida es:
tensor([11, 12, 13])
Ejemplo 3: Usar el parámetro alpha
Ejemplo
import torch
# Crear dos tensores
a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([1.0, 2.0, 3.0])
# Calcular a + 2 * b
c = torch.add(a, b, alpha=2)
print(c)
# Crear dos tensores
a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([1.0, 2.0, 3.0])
# Calcular a + 2 * b
c = torch.add(a, b, alpha=2)
print(c)
El resultado de salida es:
tensor([3., 6., 9.])
alphaEl parámetro es útil al implementar ciertos algoritmos, por ejemplo al calcularinput + alpha * other。
Ejemplo 4: Mecanismo de broadcasting
Ejemplo
import torch
# Sumar tensores de diferentes formas (broadcasting)
a = torch.tensor([[1, 2, 3], [4, 5, 6]])
b = torch.tensor([1, 2, 3])
c = torch.add(a, b)
print(c)
# Sumar tensores de diferentes formas (broadcasting)
a = torch.tensor([[1, 2, 3], [4, 5, 6]])
b = torch.tensor([1, 2, 3])
c = torch.add(a, b)
print(c)
El resultado de salida es:
tensor([[2, 4, 6],
[5, 7, 9])
PyTorch admite el mecanismo de broadcasting, que permite operar tensores de diferentes formas.
Usar el operador más
Además de usar la funcióntorch.add(), también se puede usar directamente el operador+, el efecto de ambos es el mismo:
Ejemplo
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
# Las dos formas son equivalentes
c1 = torch.add(a, b)
c2 = a + b
print(c1)
print(c2)
print(torch.equal(c1, c2))
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
# Las dos formas son equivalentes
c1 = torch.add(a, b)
c2 = a + b
print(c1)
print(c2)
print(torch.equal(c1, c2))
Otras extensiones