[PYTHON] Beginnend mit PyTorch

PyTorch

PyTorch: Ein Deep-Learning-Framework, mit dem neuronale Netze berechnet werden können.

Wir haben das Verfahren bis zur Installation zusammengefasst, um die Umgebung von PyTorch zu erstellen. (Ich kann eines Tages eine einfache Verwendung schreiben)

Installieren Sie PyTorch

pyenv + anaconda3-5.3.1 on CentOS Linux release 7.7.1908 (Core) Ich installiere pyenv immer unter Linux und benutze anaconda 3-5.3.1. Wenn Sie sich die Seite der Kopffamilie ansehen, können Sie sie beispielsweise auch mit dem Befehl conda eingeben

#Stabil auf der ursprünglichen Website(1.5), Linux, Conda, Python, None (Cuda-Optionen)Befehle angezeigt in
#Wenn Sie die neueste Version installieren möchten, sollten Sie den Befehl auf der ursprünglichen Site neu generieren
conda install pytorch torchvision cpuonly -c pytorch

PyTorch kommt herein. Wenn PyTorch jedoch in dieser Prozedur enthalten ist, wird zumindest in meiner Umgebung (CentOS Linux Release 7.7.1908 (Core)) die Umgebung von ipython und jupyter in anaconda zerstört. </ font> Dies ist das Ende der Geschichte. Deshalb habe ich nach einem anderen Weg gesucht.

pyenv + 3.8.2 on CentOS Linux release 7.7.1908 (Core) Auf der Seite der Kopffamilie heißt es, dass Sie auch "pip" eingeben können. In diesem Fall habe ich beschlossen, eine einfache Python einzufügen und sie von dort mit pip hinzuzufügen. Wenn Sie nicht an dem Prozess interessiert sind und ihn nur installieren möchten, lesen Sie die endgültige Zusammenfassung dieses Unterabschnitts.

Setzen Sie pyenv (siehe 'Pyenv-Installation, um eine unendliche Anzahl von Artikeln zu finden, wie man es platziert) und setzen Sie es in Ihren PFAD (geschrieben in der unendlichen Anzahl von Artikeln). Als ich mit pyenv install --list nachgesehen habe, war 3.8.2 das neueste in meinem pyenv, also habe ich mich entschieden, dies auszuwählen.

pyenv install 3.8.2

Wenn ich versuche, mit ** zu installieren, kann ich nicht installieren. ** Wenn ich den Fehler und die Warnung überprüfe (die Warnung wird auch unterstützt, solange die Kostenleistung dies zulässt, da eine spätere Neuerstellung mühsam ist), scheinen "zlib", "ssl", "bzip2", "realine", "SQlite" ausreichend zu sein. Es scheint keine zu geben. Vorher hätte ich "gcc", "g ++", "gfortran" einfügen sollen, aber möglicherweise waren bereits andere Apps / Bibliotheken enthalten. (Anaconda bezieht sich nicht auf die Systembibliotheken, daher frage ich mich, ob es bisher ein Problem mit der Installation gab. Ich bin mir nicht sicher.) Wenn ich versuche, diese Bibliotheken zu installieren und "yum install zlib" usw. zu versuchen, heißt es, dass es bereits existiert. .. Alles was Sie brauchen ist "zlib-dev". Dies gilt vor allem auch für andere Bibliotheken. Damit

yum install zlib-*    #zlib-*Mit zlib-Entwickler einfügen etc.
yum install openssl-*
yum install bzip2-*
yum install readline-*
yum install sqlite-*

Danach, als ich den obigen Python-Installationsbefehl eingegeben habe, wurde er erfolgreich erstellt. Ich habe nur Anaconda verwendet, also dachte ich, ich würde nur eine komprimierte Binärdatei namens pyenv auspacken, aber ich baue sie. Die Tatsache, dass "* -dev" erforderlich ist, kann auch bedeuten, dass die statische Bibliothek zur Erstellungszeit verknüpft ist.

Nun, deshalb

#Stabil auf der ursprünglichen Website(1.5), Linux, Pip, Python, None (Cuda-Optionen)Befehle angezeigt in
#Wenn Sie die neueste Version installieren möchten, sollten Sie den Befehl auf der ursprünglichen Site neu generieren
pip install torch==1.5.0+cpu torchvision==0.6.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

Ich fragte mich, ob PyTorch an einem sonnigen Tag hereinkommen würde, und es war Moos. Anscheinend können ctypes nicht gut gelesen werden. Sie können versuchen, "ctypes" aus "python3" zu importieren und den Fehler "ModuleNotFoundError: Kein Modul mit dem Namen" _ctypes "" auszulösen. Da ctypes eine ziemlich einfache Bibliothek ist, ist es möglich, dass sie nicht im Build 3.8.2 enthalten war, sodass etwas grundlegend falsch ist. Als ich verschiedene Fehlermeldungen überprüft habe, scheint es, dass "libffi" fehlt. Und die Geschichte wiederholt sich. libffi selbst ist bereits installiert und alles was Sie brauchen ist libffi-dev. damit,

yum install libffi-*

machen. Dies allein löst das Problem nicht. ** Diese Bibliothek muss beim Erstellen von Python verknüpft werden ** (schnell). Nachdem Sie es mit "pyenv uninstall 3.8.2" gelöscht haben, können Sie "ctypes" ordnungsgemäß mit "pyenv install 3.8.2" importieren. Bis zu diesem Punkt wird der oben geschriebene Installationsbefehl mit pip von PyTorch übergeben. Wenn Sie danach "jupyter", "matplotlib", "scipy" in "pip" einfügen, können Sie die meisten Funktionen verwenden. numpy wird wahrscheinlich als Abhängigkeit bei der Installation von PyTorch berücksichtigt.

Zusammenfassung

Ich habe über den Pfad der PyTorch-Installation geschrieben, der entdeckt und gelöst wurde. Aber wenn Sie die Antwort von Anfang an kennen

yum install zlib-* openssl-* bzip2-* readline-* sqlite-* libffi-*
pip install torch==1.5.0+cpu torchvision==0.6.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
pip install jupyter
pip install matplotlib
pip install scipy

Sie sollten also eine minimale Entwicklungsumgebung mit PyTorch haben. (Wenn Sie gcc g ++ noch nicht installiert haben, müssen Sie möglicherweise auch "yum install" ausführen.)

Wenn Sie nicht mit Anaconda in Kontakt treten möchten, können Sie es in dem Verzeichnis, das PyTorch verwendet, auf "pyenv local 3.8.2" setzen. Wenn Sie in ein anderes Verzeichnis wechseln, wird die als global angegebene Umgebung erstellt.

pyenv + 3.8.2 on Ubuntu 19.10 Es gab verschiedene Missverständnisse, und wenn ich "pyenv 8.3.2" mit nur "sudo apt install libffi-dev" eingefügt habe,

WARNING: The Python bz2 extenWARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?sion was not compiled. Missing the bzip2 lib?

Ich habe einen Fehler wie. Im Fall von Ubuntu entspricht das obige "yum"

sudo apt install libbz2-dev
sudo apt install libreadline-dev 
sudo apt install libsqlite3-dev

werden. Dadurch wird Python 3.8.2 installiert. Sie müssen also nur PyTorch, Jupyter, Matplotlib und Scipy mit pip hinzufügen. Referenzierte Site: [WARNUNG tritt auf, wenn versucht wird, Python 3.7.0 mit pyenv zu installieren - Automatisiertes Küchenprogramm-Memo-Blog │ CODE-LIFE](https://code-life.hatenablog.com/entry/pyenv- install-3.7.0)

Torch tensor

  • Mit torch_array.shape formen
  • Holen Sie sich die Länge mit torch_array.size

Modell erstellen

Ein Beispiel für ein Modell mit zwei ausgeblendeten Ebenen. In nn.Linear ist die Aktivierungsfunktion ReLU.

import torch
import torch.nn as nn
import torch.nn.functional as F
class Model_2L(nn.Module):
    def __init__(self, input_size, output_size, ndim1 = 10, ndim2=10):
        super(Model_2L,self).__init__()
        self.n1 = ndim1
        self.n2 = ndim1
        self.fc1 = nn.Linear(input_size, self.n1)
        self.fc2 = nn.Linear(self.n1, self.n2)
        self.fc3 = nn.Linear(self.n2, output_size)

    def forward(self, x):
        x = self.fc1(x)
        x = self.fc2(F.relu(x))
        x = self.fc3(F.relu(x))
        return x
model = Model_3L(input_size, output_size)

Fehlerbehebung

RuntimeError: size mismatch, m1: [1 x 15], m2: [1 x 1] at /pytorch/aten/src/TH/generic/THTensorMath.cpp:41

Die Form des Arguments Fackeltensor ist wahrscheinlich seltsam. In meinem Fall habe ich es mit numpy ndarray gemacht und es dann mit torch.from_numpy in Fackeltensor geändert, und die Erklärung zum Zeitpunkt von numpy ndarray war seltsam. Insbesondere wurde mit (Ndim, 1) gemacht, was mit (Ndim,) gemacht werden sollte. Diese Transformation kann mit "x_array = x_array.reshape (Ndim, -1)" durchgeführt werden.

RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #2 'mat1' in call to _th_addmm Wahrscheinlich ist der Typ des Eingangstensors keine 32-Bit-reelle Zahl, sondern eine 64-Bit-reelle Zahl, aber das Problem ist, dass die Lesefunktion nicht der 64-Bit-reellen Zahl entspricht.

Laut 2. PyTorch Tensol & Datentyp Cheet Sheet: Einführung in PyTorch- @ IT

Es gibt viele Typen, aber grundsätzlich wird nur 32bit torch.float oder torch.int verwendet.

Es scheint, dass. Ich denke, viele Numpys verwenden standardmäßig float64, daher müssen Sie im Deklarationsteil explizit dtype = float32 hinzufügen oder es mitx_array = np.float32 (x_array)in eine 32-Bit-reelle Zahl konvertieren. Gibt es.

Recommended Posts

Beginnend mit PyTorch
Spiele mit PyTorch
Kreuzvalidierung mit PyTorch
Verwenden Sie RTX 3090 mit PyTorch
Versuchen Sie Auto Encoder mit Pytorch
Versuchen Sie, XOR mit PyTorch zu implementieren
Implementieren Sie PyTorch + GPU mit Docker
Vorhersage des Nikkei-Durchschnitts mit Pytorch 2
Maschinelles Lernen Minesweeper mit PyTorch
PyTorch mit AWS Lambda [Lambda-Import]
Vorhersage des Nikkei-Durchschnitts mit Pytorch
Führen Sie mit PyTorch eine geschichtete Aufteilung durch
Beginnend mit maschinellem Python-Lernen
Ich habe Word2Vec mit Pytorch gemacht
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 2)
Lernen Sie mit PyTorch Graph Convolutional Networks
Ich habe versucht, Attention Seq2Seq mit PyTorch zu implementieren
Vorhersage des Nikkei-Durchschnitts mit Pytorch ~ Makuma ~
Aufblasen von Daten (Datenerweiterung) mit PyTorch
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 1)
pytorch @ python3.8 Umgebungskonstruktion mit pipenv
Erzielen Sie mit Tensorflow eine Pytorch-Reflexionspolsterung
Sinuswellenvorhersage (Rückkehr) mit Pytorch
Installieren Sie die Pytorch
Multi-Class Multi-Label-Klassifizierung von Bildern mit Pytorch
Ich habe versucht, Shake-Shake Regularization (ShakeNet) mit PyTorch zu implementieren
PyTorch-Links
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Dokumentklassifizierung mit toch Text von PyTorch
[Einführung in Pytorch] Ich habe mit sinGAN ♬ gespielt
Ich habe versucht, DeepPose mit PyTorch PartⅡ zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Maschinelles Lernen mit Pytorch in Google Colab
Installieren Sie PyTorch
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe den MNIST-Code von Chainer mit PyTorch + Ignite neu geschrieben
Die Geschichte des Versuchs, Tensorboard mit Pytorch zu verwenden
Zeigen Sie das Bild nach der Datenerweiterung mit Pytorch an