Python débutant touche Pytorch (1)

Ravi de vous rencontrer, je m'appelle Yusaku Sekine. Ceci est mon premier article, donc je suis nerveux, mais je ferai de mon mieux pour l'écrire, alors n'hésitez pas à me contacter si vous avez des suggestions. De plus, dans cet article, je vais omettre l'explication sur la façon d'installer Pytorch et la grammaire de base. Se concentre sur la grammaire de base de Pytorch.

1. Contexte de la rédaction de l'article

Je m'intéresse à l'intelligence artificielle et j'utilise TensorFlow </ strong> depuis longtemps, mais je ne peux plus utiliser TensorFlow sur mon appareil Windows. Par conséquent, j'ai décidé de profiter de cette opportunité pour passer à Pytorch </ strong> et écrire un article comme une pratique.
La méthode d'apprentissage est la suivante.

  1. Document officiel Pytorch tutrial link
  2. Article net (Qitta ou blog technique)
  3. En fait bouger Cet article est basé sur le document officiel, donc si vous souhaitez le lire dans le texte original, veuillez consulter le document officiel.

2. Introduction à Pytorch

2-1. Tenseur Le premier est le formulaire de données de base Tensor de Pytorch à utiliser. Créez et exécutez le code suivant. Cet article n'entre pas dans les détails sur ce qu'est Tensor. Pour le moment, je pense que vous devriez le considérer comme quelque chose de similaire à une procession.

torch1.py


import torch
tensor = torch.rand(3,3)
print(tensor)

résultat


tensor([[0.7545, 0.3774, 0.7312],
        [0.9000, 0.6083, 0.5135],
        [0.6012, 0.9147, 0.0625]]

Le mot "tenseur" est écrit dans le résultat de l'exécution. pytorch calcule ce tenseur et effectue un apprentissage automatique. De plus, torch.rand génère aléatoirement des nombres de 0 à 1 (ligne, colonne). Vous pouvez le trouver encore mieux si vous l'exécutez avec des numéros de ligne et de colonne différents.
Ensuite, déclarons un tenseur général.

torch2.py


import torch
tensor = torch.tensor([[1,2,3],
                      [4,5,6],
                      [7,8,9]])
print(tensor)

résultat


tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

Vous pouvez également déclarer un tenseur ici. Sélectionnez la méthode de génération de tenseur en fonction de l'utilisation.

2-2. Calcul de base du Tensor Maintenant que vous pouvez déclarer un tenseur, faisons un calcul en utilisant ce tenseur. Comme c'est un gros problème, trouvons la somme, la différence, le produit et le quotient en utilisant le tenseur déclaré précédemment.

torch2.py


import torch
tensor = torch.tensor([[1,2,3],
                      [4,5,6],
                      [7,8,9]])

print("somme")
print(tensor+tensor)
print("différence")
print(tensor-tensor)
print("produit")
print(tensor*tensor)
print("quotient")
print(tensor//tensor)

résultat


somme
tensor([[ 2,  4,  6],
        [ 8, 10, 12],
        [14, 16, 18]])
différence
tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])
produit
tensor([[ 1,  4,  9],
        [16, 25, 36],
        [49, 64, 81]])
quotient
tensor([[1, 1, 1],
        [1, 1, 1],
        [1, 1, 1]])

Vous pouvez confirmer que le calcul est terminé sans aucun problème.

En passant, la somme et la différence entre les tenseurs peuvent être calculées de différentes manières.

tensor3.py


import torch
print(torch.add(tensor,tensor))
print(torch.sub(tensor,tensor))

résultat


tensor([[ 2,  4,  6],
        [ 8, 10, 12],
        [14, 16, 18]])

tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])

2-3. Fonction de calcul pratique Voici quelques-unes des fonctionnalités que j'ai trouvées utiles dans l'utilisation de Pytorch. C'est juste mon sentiment, il peut donc être amusant de rechercher par vous-même des fonctions utiles. * Tous peuvent être utilisés après avoir exécuté "import torch".

2-3-1. Générer n'importe quel nombre 0 ou 1

zeros_and_ones.py


print(torch.zeros(3,3))
print(torch.ones(3,3))

résultat


tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])

tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]])

2-3-2. Valeurs maximale et minimale

max_and_min.py


tensor = torch.tensor([[1,2,3],
                       [4,5,6],
                       [7,8,9]])
print(torch.max(tensor))
print(torch.min(tensor))

résultat


tensor(9)
tensor(1)

2-3-3.Vérification de la taille du capteur

tensor_size.py


tensor = torch.tensor([[1,2,3],
                       [4,5,6],
                       [7,8,9]])
print(tensor.size())

résultat


torch.Size([3, 3])

2-3-4. Somme de tous les éléments de Tensor

sum_of_tensor.py


tensor = torch.tensor([1,2,3,4,5])

print(torch.sum(tensor))
tensor(15)

2-3-5. Arrondi du Tenseur, calcul de la valeur absolue

round_abs.py


#Tenseur de valeur absolue
tensor1 = torch.tensor([[-1,-2,-3],
                        [-4,-5,-6],
                        [-7,-8,-9]])

#Tenseur d'arrondi
tensor2 = torch.tensor([[1.1,2.4,3.5],
                        [-4.5,-5.7,-6.8],
                        [-7.1,-8.1,-9.0]])

print(torch.abs(tensor1))
print(torch.round(tensor2))

résultat


tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

tensor([[ 1.,  2.,  4.],
        [-4., -6., -7.],
        [-7., -8., -9.]])
  • Si le nombre est négatif, il peut être dévalué à 5. J'ai une dévaluation.

2-3-6. Multiplication de Tensor et calcul de la racine carrée

pow_sqrt.py


#Tenseur pour le calcul de la multiplication
tensor3 = torch.tensor([[1,2,3],
                        [4,5,6],
                        [7,8,9]])
'''
Tenseur pour le calcul de la racine carrée
Si vous voulez faire une racine carrée, vous devez changer le type en float. La conversion de type est dtype= "Moule"
'''
tensor4 = torch.tensor([[1,4,9],
                        [16,25,36],
                        [49,64,81]],dtype=torch.float32)

print(torch.pow(tensor3,2)) #Vous pouvez accéder au pouvoir en changeant la partie de 2 arbitrairement.
print(torch.sqrt(tensor4))

résultat


tensor([[ 1,  4,  9],
        [16, 25, 36],
        [49, 64, 81]])

tensor([[1., 2., 3.],
        [4., 5., 6.],
        [7., 8., 9.]])

Conversion 2-3-7.tensor de numpy à Le module d'extension bien connu «numpy» Pytorch utilisé dans le calcul matriciel de Python peut également convertir numpy en tenseur.

numpy_to_tensor.py


import numpy as np
import torch

numpy = np.array([1,2,3,4,5])
numpy_to_tensor = torch.from_numpy(numpy)
print(numpy)
print(numpy_to_tensor)

résultat


[1 2 3 4 5]
tensor([1, 2, 3, 4, 5])
#On peut confirmer que la notation est différente entre «numpy» et «tenseur».

Enfin Cette fois, j'ai introduit un simple calcul tenseur et tenseur. Ensuite, j'écrirai un article sur la différenciation qui comprend quelques éléments mathématiques. Je voudrais améliorer la capacité de rédaction d'articles de Qitta, veuillez donc signaler toute suggestion ou amélioration.

Merci d'avoir lu jusqu'au bout.

Recommended Posts