[PYTHON] À partir de PyTorch

PyTorch

PyTorch: Un cadre d'apprentissage en profondeur qui peut calculer les réseaux de neurones.

Nous avons résumé la procédure jusqu'à l'installation pour construire l'environnement de PyTorch. (Je peux écrire un usage simple un jour)

Installez PyTorch

pyenv + anaconda3-5.3.1 on CentOS Linux release 7.7.1908 (Core) J'installe toujours pyenv sur Linux et j'utilise anaconda 3-5.3.1. En regardant la page de la famille principale, il semble que vous pouvez également entrer en utilisant la commande conda, par exemple

#Stable sur le site d'origine(1.5), Linux, Conda, Python, None (options de cuda)Commandes affichées dans
#Si vous souhaitez installer la dernière version, vous devez régénérer la commande sur le site d'origine
conda install pytorch torchvision cpuonly -c pytorch

PyTorch entre. Cependant, si PyTorch est inclus dans cette procédure, au moins dans mon environnement (CentOS Linux version 7.7.1908 (Core)), l'environnement d'ipython et de jupyter dans anaconda sera détruit. </ font> C'est la fin de l'histoire. Par conséquent, j'ai cherché un autre moyen.

pyenv + 3.8.2 on CentOS Linux release 7.7.1908 (Core) En regardant la page de la famille principale, il est dit que vous pouvez également entrer pip. Dans ce cas, j'ai décidé de mettre un simple python et de l'ajouter avec pip à partir de là. Si vous n'êtes pas intéressé par le processus et que vous souhaitez simplement l'installer, accédez au résumé final de cette sous-section.

Mettez pyenv (voir'pyenv installation 'pour trouver un nombre infini d'articles pour savoir comment le mettre) et mettez-le dans votre PATH (écrit dans le nombre infini d'articles). Quand j'ai vérifié avec pyenv install --list, la version 3.8.2 était la dernière de mon pyenv, j'ai donc décidé de la sélectionner.

pyenv install 3.8.2

Lorsque j'essaye d'installer avec **, je ne peux pas installer. ** Si vous vérifiez l'erreur et l'avertissement (il est trop paresseux pour reconstruire plus tard, donc l'avertissement sera pris en charge tant que les performances de coût le permettent), il semble que zlib, ssl, bzip2, realine, SQlite soient suffisants. Il semble y avoir non. Avant cela, j'aurais dû inclure gcc,g ++, gfortran, mais il se peut que d'autres applications / bibliothèques aient déjà été incluses. (Anaconda ne fait pas référence aux bibliothèques système, donc je me demande s'il y a eu un problème avec l'installation jusqu'à présent. Je ne suis pas sûr.) Quand j'essaye d'installer ces bibliothèques et d'essayer yum install zlib etc., il dit qu'il existe déjà. .. Donc, tout ce dont vous avez besoin est zlib-dev. Cela est également vrai pour les autres bibliothèques. Alors

yum install zlib-*    #zlib-*Avec zlib-Insérer dev etc.
yum install openssl-*
yum install bzip2-*
yum install readline-*
yum install sqlite-*

Après cela, lorsque j'ai mis la commande d'installation python ci-dessus, elle a été construite avec succès. Je n'ai utilisé que anaconda, alors j'ai pensé que je déballais juste un binaire compressé appelé pyenv, mais je le construis. De plus, le fait que «* -dev» soit requis peut signifier que la bibliothèque statique est liée au moment de la construction.

Eh bien, c'est pourquoi

#Stable sur le site d'origine(1.5), Linux, Pip, Python, None (options de cuda)Commandes affichées dans
#Si vous souhaitez installer la dernière version, vous devez régénérer la commande sur le site d'origine
pip install torch==1.5.0+cpu torchvision==0.6.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

Je me suis demandé si PyTorch entrerait par une journée ensoleillée, et c'était de la mousse. Apparemment, «ctypes» ne peut pas être lu correctement. En tant que test, vous pouvez lancer ʻimport ctypes depuis python3avec l'erreurModuleNotFoundError: No module named'_ctypes'. Puisque ctypesest une bibliothèque assez basique, il est possible qu'elle n'ait pas été incluse dans la version 3.8.2, donc quelque chose ne va pas du tout. Lorsque j'ai vérifié divers messages d'erreur, il semble quelibffimanque. Et l'histoire se répète.libffi lui-même est déjà installé et tout ce dont vous avez besoin est libffi-dev`. alors,

yum install libffi-*

faire. En fait, cela seul ne résout pas le problème, ** cette bibliothèque doit être liée lors de la construction de python ** (rapidement). Ainsi, après l'avoir supprimé avec pyenv uninstall 3.8.2, vous pouvez importer ctypes correctement avec pyenv install 3.8.2. Jusqu'à ce point, la commande d'installation avec pip de PyTorch écrite ci-dessus passera. Après cela, si vous mettez jupyter, matplotlib, scipy dans pip, vous pouvez utiliser la plupart des fonctions. numpy est probablement inclus en tant que dépendance lors de l'installation de PyTorch.

Résumé

J'ai écrit sur le chemin d'installation de PyTorch qui a été découvert et résolu. Mais si tu connais la réponse depuis le début

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

Donc, vous devriez avoir un environnement de développement minimum avec PyTorch. (Pour gcc g ++, si vous ne l'avez pas encore installé, vous devrez peut-être également yum install.)

Si vous n'aimez pas entrer en contact avec Anaconda, vous pouvez le définir sur pyenv local 3.8.2 dans le répertoire qui utilise PyTorch. Si vous passez à un autre répertoire, l'environnement spécifié comme global sera créé.

pyenv + 3.8.2 on Ubuntu 19.10 Il y a eu divers malentendus, et si je faisais pyenv 8.3.2 avec seulement sudo apt install libffi-dev inséré,

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

J'ai eu une erreur comme ça. Dans le cas d'Ubuntu, le «yum» ci-dessus correspond à

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

devenir. Cela installera python 3.8.2, donc tout ce que vous avez à faire est d'ajouter PyTorch, jupyter, matplotlib et scipy dans pip. Site référencé: [AVERTISSEMENT se produit lors de la tentative d'installation de Python 3.7.0 avec pyenv - Blog mémo de programmation de cuisine automatisée │ CODE-LIFE](https://code-life.hatenablog.com/entry/pyenv- install-3.7.0)

Torch tensor

--Get forme avec torch_array.shape

  • Obtenir la longueur avec torch_array.size

Créer un modèle

Un exemple de modèle avec deux couches cachées. Dans nn.Linear, la fonction d'activation est 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)

dépannage

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

La forme de l'argument torche tensory est probablement étrange. Dans mon cas, je l'ai fait avec numpy ndarray, puis je l'ai changé en torch tensor avec torch.from_numpy, et la déclaration au moment de numpy ndarray était étrange. Plus précisément, ce qui devrait être fait avec (Ndim, 1) a été fait avec (Ndim,). Cette transformation peut être effectuée avec x_array = x_array.reshape (Ndim, -1).

RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #2 'mat1' in call to _th_addmm Probablement, le type du tenseur d'entrée n'est pas un nombre réel de 32 bits, c'est un nombre réel de 64 bits, mais le problème est que la fonction de lecture ne correspond pas au nombre réel de 64 bits.

Selon 2nd PyTorch Tensol & Data Type Cheet Sheet: Introduction to PyTorch- @ IT

Il existe de nombreux types, mais en gros, seuls 32 bits torch.float ou torch.int sont utilisés.

Il paraît que. Je pense que de nombreux numpys utilisent float64 par défaut, vous devez donc ajouter explicitement dtype = float32 dans la partie déclaration ou le convertir en un nombre réel 32 bits avecx_array = np.float32 (x_array). y a-t-il.

Recommended Posts

À partir de PyTorch
Jouez avec PyTorch
Validation croisée avec PyTorch
Utilisez RTX 3090 avec PyTorch
Essayez Auto Encoder avec Pytorch
Essayez d'implémenter XOR avec PyTorch
Implémenter le GPU PyTorch + avec Docker
Prédiction de la moyenne Nikkei avec Pytorch 2
Démineur d'apprentissage automatique avec PyTorch
PyTorch avec AWS Lambda [importation Lambda]
Prédiction de la moyenne Nikkei avec Pytorch
Effectuer un fractionnement stratifié avec PyTorch
Commencer avec l'apprentissage automatique Python
J'ai créé Word2Vec avec Pytorch
[Tutoriel PyTorch ⑤] Apprentissage de PyTorch avec des exemples (Partie 2)
Apprenez avec les réseaux convolutifs PyTorch Graph
J'ai essayé d'implémenter Attention Seq2Seq avec PyTorch
Prédiction de la moyenne Nikkei avec Pytorch ~ Makuma ~
Comment augmenter les données avec PyTorch
[Tutoriel PyTorch ⑤] Apprentissage de PyTorch avec des exemples (Partie 1)
Construction de l'environnement pytorch @ python3.8 avec pipenv
Obtenez un rembourrage de réflexion Pytorch avec Tensorflow
Prédiction des ondes de Sin (retour) avec Pytorch
Installer pytorch
Classification multi-étiquette d'images multi-classes avec pytorch
J'ai essayé d'implémenter la régularisation Shake-Shake (ShakeNet) avec PyTorch
Liens PyTorch
Créez un quiz de dessin avec kivy + PyTorch
Classification des documents avec texte toch de PyTorch
[Introduction à Pytorch] J'ai joué avec sinGAN ♬
J'ai essayé d'implémenter DeepPose avec PyTorch PartⅡ
J'ai essayé d'implémenter CVAE avec PyTorch
Apprentissage automatique avec Pytorch sur Google Colab
Installez PyTorch
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai réécrit le code MNIST de Chainer avec PyTorch + Ignite
Histoire d'essayer d'utiliser Tensorboard avec Pytorch
Afficher l'image après l'augmentation des données avec Pytorch