Mis a jour le 2025-04-14, 12:10

Introduction a Torch

C'est un module qui permet :
  • de remplacer numpy pour utiliser la puissance des GPU.
  • d'offrir une plateforme pour le deeplearning.
  • faire import torch pour utiliser la librairie.
Sous torch, notion de tensors remplacent les ndarrays de numpy.
Création de tensor :
  • torch.empty(5, 3) : création d'un tenseur à 2 dimensions (matrice) avec 5 lignes et 3 colonnes (valeurs non initialisées).
  • torch.zeros(5, 3) : création avec initialisation à 0.
  • torch.ones(5, 3) : création avec initialisation à 1.
  • torch.rand(5, 3) : création avec initialisation aléatoire entre 0 et 1.
  • torch.zeros(5, 3, dtype = torch.int) : création avec initialisation à 0 et avec des entiers.
  • torch.tensor(numpy.array([[1, 3], [6, 7]])) : initialisation à partir d'une array numpy.
Taille d'un tenseur : myTensor.size() (renvoie un torch.Size qui se comporte comme un tuple).
Opérations sur les tenseurs :
  • t1 + t2 : addition de 2 tenseurs.
  • torch.add(t1, t2) : autre formulation de l'addition.
  • 2 * t1 : multiplication par un scalaire.
  • t1 + 2 : ajout d'une constante à tous les éléments.
  • t1.add_(t2) : ajoute t2 à t1 en le modifiant en place.
Resizing :
  • si t = torch.rand(3, 4), t.view(6, 2) renvoie un tenseur de dimensions modifiées, avec valeurs dans l'ordre des lignes, puis colonnes.
  • t.view(-1, 2) : la dimension à -1 est déduite des autres dimensions.
Indexation :
  • comme avec numpy, par contre t[0,0] renvoie encore un tenseur (sans dimension).
  • t[0,0].item() : renvoie la valeur numérique seule.
Passerelle avec numpy :
  • conversion de torch vers numpy : t = torch.rand(3, 4); ar = t.numpy()
  • conversion de numpy vers torch : t = torch.from_numpy(ar)
  • attention : le tenseur torch et l'array numpy partagent la même zone mémoire (modification de l'un modifie l'autre !)
Multiplication de 2 tenseurs : torch.mm(t1, t2)
Norme d'un tenseur : t.norm()

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert