Fonction torch.addr de PyTorch
Manuel de référence PyTorch torch
torch.addrC'est une fonction de PyTorch utilisée pour calculer le produit extérieur de deux vecteurs et l'ajouter à une matrice d'entrée. Elle calcule le produit extérieur de chaque ligne de vec1 et de chaque colonne de vec2, puis l'ajoute à input.
Définition de fonction
torch.addr(input, vec1, vec2, *, beta=1.0, alpha=1.0, out=None)
Parameters:
input(Tensor): Matrice d'entrée, ajoutée au résultat.vec1(Tensor): Le premier vecteur, de forme (n,) ou (n, 1).vec2(Tensor): Le second vecteur, de forme (m,) ou (m, 1).beta(float, optionnel) : Coefficient multiplié par input, la valeur par défaut est 1.0.alpha(float, facultatif): Coefficient multiplié par le résultat du produit extérieur, la valeur par défaut est 1.0.out(Tensor, optionnel) : Tenseur de sortie.
Valeur de retour:
torch.Tensor: Renvoie la somme du produit extérieur et de la matrice d'entrée, de forme (n, m).
Exemple d'utilisation
Exemple
import torch
# Créer la matrice d'entrée et deux vecteurs
input = torch.zeros(3, 4)
vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6, 7])
# Calculer le produit extérieur et l'ajouter à la matrice d'entrée
result = torch.addr(input, vec1, vec2)
print("Forme de la matrice d'entrée :", input.shape)
print("Vecteur 1 :", vec1)
print("Vecteur 2 :", vec2)
print("Forme du résultat :", result.shape)
print(result)
# Créer la matrice d'entrée et deux vecteurs
input = torch.zeros(3, 4)
vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6, 7])
# Calculer le produit extérieur et l'ajouter à la matrice d'entrée
result = torch.addr(input, vec1, vec2)
print("Forme de la matrice d'entrée :", input.shape)
print("Vecteur 1 :", vec1)
print("Vecteur 2 :", vec2)
print("Forme du résultat :", result.shape)
print(result)
Le résultat de sortie est:
输入矩阵形状: torch.Size([3, 4])
向量1: tensor([1, 2, 3])
向量2: tensor([4, 5, 6, 7])
结果形状: torch.Size([3, 4])
tensor([[ 4., 5., 6., 7.],
[ 8., 10., 12., 14.],
[12., 15., 18., 21.]])
Exemple - Sans utiliser de matrice d'entrée
import torch
vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6])
# Calculer directement le produit extérieur
result = torch.addr(torch.zeros(3, 3), vec1, vec2)
print(result)
vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6])
# Calculer directement le produit extérieur
result = torch.addr(torch.zeros(3, 3), vec1, vec2)
print(result)
Autres extensions