Python-Anfänger berührt Pytorch (1)

Schön dich kennenzulernen, mein Name ist Yusaku Sekine. Dies ist mein erster Artikel, daher bin ich nervös, aber ich werde mein Bestes geben, um ihn zu schreiben. Bitte kontaktieren Sie mich, wenn Sie Vorschläge haben. Außerdem werde ich in diesem Artikel die Erklärung zur Installation von Pytorch und die grundlegende Grammatik weglassen. Konzentriert sich auf die grundlegende Grammatik von Pytorch.

1. Hintergrund des Schreibens des Artikels

Ich interessiere mich für künstliche Intelligenz und verwende TensorFlow </ strong> schon lange, aber jetzt kann ich TensorFlow auf meinem Windows-Gerät nicht mehr verwenden. Aus diesem Grund habe ich mich entschlossen, diese Gelegenheit zu nutzen, um zu Pytorch </ strong> zu wechseln und einen Artikel als Übung zu schreiben.
Die Lernmethode ist wie folgt.

  1. Offizielles Dokument Pytorch tutrial link
  2. Netzartikel (Qitta oder technischer Blog)
  3. Bewegen Sie sich tatsächlich Dieser Artikel basiert auf dem offiziellen Dokument. Wenn Sie ihn also im Originaltext lesen möchten, lesen Sie bitte das offizielle Dokument.

2. Einführung in Pytorch

2-1. Tensor Zunächst ist das Basisdatenformular Tensor von Pytorch zu verwenden. Erstellen Sie den folgenden Code und führen Sie ihn aus. Dieser Artikel geht nicht ins Detail, was Tensor ist. Ich denke, Sie sollten es vorerst als etwas betrachten, das einer Prozession ähnelt.

torch1.py


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

Ergebnis


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

Das Wort "Tensor" wird in das Ausführungsergebnis geschrieben. pytorch berechnet diesen Tensor und führt maschinelles Lernen durch. Außerdem generiert torch.rand zufällig Zahlen von 0 bis 1 (Zeile, Spalte). Sie finden es möglicherweise noch besser, wenn Sie es mit unterschiedlichen Zeilen- und Spaltennummern ausführen.
Als nächstes deklarieren wir einen allgemeinen Tensor.

torch2.py


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

Ergebnis


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

Hier können Sie auch einen Tensor deklarieren. Wählen Sie die Tensor-Generierungsmethode entsprechend der Verwendung aus.

2-2. Grundberechnung des Tensors Nachdem Sie einen Tensor deklarieren können, führen wir eine Berechnung mit diesem Tensor durch. Da es sich um eine große Sache handelt, ermitteln wir die Summe, die Differenz, das Produkt und den Quotienten mithilfe des zuvor deklarierten Tensors.

torch2.py


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

print("Summe")
print(tensor+tensor)
print("Unterschied")
print(tensor-tensor)
print("Produkt")
print(tensor*tensor)
print("Quotient")
print(tensor//tensor)

Ergebnis


Summe
tensor([[ 2,  4,  6],
        [ 8, 10, 12],
        [14, 16, 18]])
Unterschied
tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])
Produkt
tensor([[ 1,  4,  9],
        [16, 25, 36],
        [49, 64, 81]])
Quotient
tensor([[1, 1, 1],
        [1, 1, 1],
        [1, 1, 1]])

Sie können problemlos bestätigen, dass die Berechnung abgeschlossen ist.

Abgesehen davon können die Summe und die Differenz zwischen Tensoren auf andere Weise berechnet werden.

tensor3.py


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

Ergebnis


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

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

2-3. Praktische Berechnungsfunktion Hier sind einige der Funktionen, die ich bei der Verwendung von Pytorch als nützlich empfunden habe. Es ist nur mein Gefühl, also kann es Spaß machen, selbst nach nützlichen Funktionen zu suchen. * Alle können nach dem Ausführen der "Importfackel" verwendet werden.

2-3-1. Generieren Sie eine beliebige Zahl 0 oder 1

zeros_and_ones.py


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

Ergebnis


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

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

2-3-2. Maximal- und Minimalwerte

max_and_min.py


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

Ergebnis


tensor(9)
tensor(1)

2-3-3.Tensorgrößenprüfung

tensor_size.py


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

Ergebnis


torch.Size([3, 3])

2-3-4. Summe aller Elemente in Tensor

sum_of_tensor.py


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

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

2-3-5. Rundung des Tensors, Berechnung des Absolutwerts

round_abs.py


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

#Rundungstensor
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))

Ergebnis


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

tensor([[ 1.,  2.,  4.],
        [-4., -6., -7.],
        [-7., -8., -9.]])
  • Wenn die Zahl negativ ist, kann sie bei 5 abgewertet werden. Ich habe eine Abwertung.

2-3-6. Tensormultiplikation und Quadratwurzelberechnung

pow_sqrt.py


#Tensor zur Multiplikationsberechnung
tensor3 = torch.tensor([[1,2,3],
                        [4,5,6],
                        [7,8,9]])
'''
Tensor für die Quadratwurzelberechnung
Wenn Sie eine Quadratwurzel erstellen möchten, müssen Sie den Typ in float ändern. Die Typkonvertierung ist dtype= "Schimmel"
'''
tensor4 = torch.tensor([[1,4,9],
                        [16,25,36],
                        [49,64,81]],dtype=torch.float32)

print(torch.pow(tensor3,2)) #Sie können es an die Macht bringen, indem Sie den Teil von 2 willkürlich ändern.
print(torch.sqrt(tensor4))

Ergebnis


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

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

2-3-7.tensor-Konvertierung von numpy nach Das bekannte Erweiterungsmodul'numpy'Pytorch, das in Pythons Matrixberechnung verwendet wird, kann auch numpy in tensor konvertieren.

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)

Ergebnis


[1 2 3 4 5]
tensor([1, 2, 3, 4, 5])
#Es kann bestätigt werden, dass die Notation zwischen "numpy" und "tensor" unterschiedlich ist.

Endlich Dieses Mal habe ich eine einfache Tensor- und Tensorberechnung eingeführt. Als nächstes werde ich einen Artikel über Differenzierung schreiben, der einige mathematische Elemente enthält. Ich möchte die Fähigkeit von Qitta, Artikel zu schreiben, verbessern. Bitte weisen Sie auf Vorschläge oder Verbesserungen hin.

Vielen Dank für das Lesen bis zum Ende.

Recommended Posts