> Modules non standards > Torch > Introduction a Torch
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