Contenu du cours
Essentiels de Pytorch
Essentiels de Pytorch
Opérations Mathématiques avec des Tensors
Opérations Élémentaires
Les opérations élémentaires 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 :
import 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 de matrices et le produit scalaire, qui sont effectués à l'aide de la fonction torch.matmul()
:
import 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}")
Vous pouvez également utiliser l'opérateur @
pour la multiplication de matrices :
import 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ésumées à partir de tenseurs, telles que la somme, la moyenne, les valeurs maximale et minimale, qui peuvent être calculées à l'aide de leurs méthodes respectives.
import 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 ont également deux paramètres optionnels :
dim
: spécifie la dimension (similairement àaxis
en 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
: un indicateur booléen (False
par défaut). Si défini surTrue
, la dimension réduite est conservée comme une dimension de taille1
dans le résultat, préservant le nombre original de dimensions.
import 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 vous avez besoin d'un rappel sur la diffusion, vous pouvez trouver plus de détails ici.
import 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 fournit également diverses fonctions mathématiques telles que les exponentielles, les logarithmes et les fonctions trigonométriques.
tensor = 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 !