Opérations Mathématiques Avec des Tenseurs
Opérations élément par élément
Les opérations élément par élément sont appliquées à chaque élément du tenseur individuellement. Ces opérations, telles que l'addition, la soustraction et la division, fonctionnent de manière similaire à NumPy :
123456789101112131415import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
Opérations matricielles
PyTorch prend également en charge la multiplication matricielle et le produit scalaire, qui sont réalisés à l'aide de la fonction torch.matmul()
:
123456import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
Il est également possible d'utiliser l'opérateur @
pour la multiplication matricielle :
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
Opérations d’agrégation
Les opérations d’agrégation calculent des statistiques récapitulatives à partir des tenseurs, telles que la somme, la moyenne, la valeur maximale et la valeur minimale, qui peuvent être obtenues à l’aide de leurs méthodes respectives.
12345678910import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
Les méthodes d’agrégation disposent également de deux paramètres optionnels :
dim
: spécifie la dimension (similaire àaxis
dans NumPy) le long de laquelle l’opération est appliquée. Par défaut, sidim
n’est pas fourni, l’opération est appliquée à tous les éléments du tenseur ;keepdim
: indicateur booléen (False
par défaut). Si défini àTrue
, la dimension réduite est conservée comme une dimension de taille1
dans la sortie, préservant ainsi le nombre original de dimensions.
12345678import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
Diffusion
La diffusion permet des opérations entre des tenseurs de formes différentes en étendant automatiquement les dimensions. Si une révision sur la diffusion est nécessaire, plus de détails sont disponibles ici.
123456import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
Fonctions mathématiques utiles
PyTorch propose également diverses fonctions mathématiques telles que les exponentielles, les logarithmes et les fonctions trigonométriques.
1234567tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 5
Opérations Mathématiques Avec des Tenseurs
Glissez pour afficher le menu
Opérations élément par élément
Les opérations élément par élément sont appliquées à chaque élément du tenseur individuellement. Ces opérations, telles que l'addition, la soustraction et la division, fonctionnent de manière similaire à NumPy :
123456789101112131415import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
Opérations matricielles
PyTorch prend également en charge la multiplication matricielle et le produit scalaire, qui sont réalisés à l'aide de la fonction torch.matmul()
:
123456import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
Il est également possible d'utiliser l'opérateur @
pour la multiplication matricielle :
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
Opérations d’agrégation
Les opérations d’agrégation calculent des statistiques récapitulatives à partir des tenseurs, telles que la somme, la moyenne, la valeur maximale et la valeur minimale, qui peuvent être obtenues à l’aide de leurs méthodes respectives.
12345678910import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
Les méthodes d’agrégation disposent également de deux paramètres optionnels :
dim
: spécifie la dimension (similaire àaxis
dans NumPy) le long de laquelle l’opération est appliquée. Par défaut, sidim
n’est pas fourni, l’opération est appliquée à tous les éléments du tenseur ;keepdim
: indicateur booléen (False
par défaut). Si défini àTrue
, la dimension réduite est conservée comme une dimension de taille1
dans la sortie, préservant ainsi le nombre original de dimensions.
12345678import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
Diffusion
La diffusion permet des opérations entre des tenseurs de formes différentes en étendant automatiquement les dimensions. Si une révision sur la diffusion est nécessaire, plus de détails sont disponibles ici.
123456import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
Fonctions mathématiques utiles
PyTorch propose également diverses fonctions mathématiques telles que les exponentielles, les logarithmes et les fonctions trigonométriques.
1234567tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
Merci pour vos commentaires !