[PYTHON] À propos de la variable du chainer

Variable de chaîne liée

Cet article suppose que python 3.x. De plus, veuillez comprendre que c'est un amateur de python. La première chose que je voulais faire avec l'apprentissage automatique était de faire de la formation sur mon propre jeu de données, mais la première chose dans laquelle je me suis retrouvé coincé était cette variable.

import numpy as np
import chainer as Variable

Le type doit être Variable lors du lancement de données vers un réseau d'apprentissage automatique défini à l'aide d'un chainer. A ce moment, il est nécessaire de toujours utiliser np.array pour les données données à l'argument. Ce np.array est un tableau utilisé par numpy de python, qui est différent de la liste python standard ([]). En regardant la documentation de Chainer, ce que vous pouvez spécifier pour la variable est [data – Data array of type either numpy.ndarray or cupy.ndarray.] Puisqu'il est décrit comme, il est nécessaire de le convertir en un tableau numpy une fois au lieu d'utiliser les données de la liste telles quelles. Si vous utilisez la virgule flottante, vous devrez peut-être également convertir en float32. Je pense que la raison de l'utilisation de float32 est que le chainer ne prend pas en charge float64, donc une erreur se produit. Cette fois, j'ai considéré certains modèles de conversion jusqu'à variable.

Exemple 1: ** Array **

x_train = [0,0,0,0,0]
x_np_train = np.array(x_train, dtype=np.float32)
x_val_train = Variable(x_np_train, 1)

Ce faisant, le tableau est converti en np.array tout en spécifiant float32, et il est ensuite converti en variable.

Exemple 2: ** Tableau multidimensionnel ** Vous pouvez suivre la même procédure.

x_train = [[0.1, 0,2],[0.3, 0.4]]
x_np_train = np.array(x_train, dtype=np.float32)
x_val_train = Variable(x_np_train, 1)

Exemple 3: ** Si np.array existe déjà **

x_train = [[0.1, 0,2],[0.3, 0.4]]
x_np_train = np.array(x_train)
x_np_train.dtype

Ensuite, il devient dtype ('float64'). Lorsqu'il s'agit de données np.array depuis le début, je pense qu'il y a de nombreux cas où vous devez effectuer un cast en float32.

x_np_train.dtype = np.float32
x_val_train = Variable(x_np_train, 1)

Exemple 4: ** La variable a déjà été créée avec un autre type **

x_train = [[0.1, 0,2],[0.3, 0.4]]
x_np_train = np.array(x_train, dtype=np.float64)
x_val_train = Variable(x_np_train, 1)
x_val_train.data.dtype

Si, dtype ('float64') est affiché. Si rien n'est fait, une erreur se produira.

x_val_train.data.dtype = np.float32
x_val_train.data.dtype

Ensuite, dtype ('float32') s'affiche.

Recommended Posts

À propos de la variable du chainer
À propos de la portée des variables. .. ..
A propos du comportement de enable_backprop de Chainer v2
À propos de tout numpy
À propos de l'attribution de numpy.ndarray
À propos de MultiIndex of Pandas
Mise en œuvre de l'apprentissage en série de Chainer à l'aide de mini-lots de longueur variable
À propos de max_iter de LogisticRegression () de scikit-learn
À propos du support japonais de cometchat
À propos de divers encodages de Python 3
À propos de tout numpy (2e)
À propos du calcul des coûts de MeCab
À propos des composants de Luigi
À propos de l'instruction if à 2 variables et 4 branches
Expansion des paramètres de variable Bash
À propos de la sortie HOG de Scikit-Image
À propos des fonctionnalités de Python
À propos de la gestion des données d'Anvil-App-Server
À propos de la valeur de retour de pthread_mutex_init ()
À propos de la valeur de retour de l'histogramme.
À propos du type de base de Go
À propos de la limite supérieure de threads-max
À propos du comportement de yield_per de SqlAlchemy
À propos de l'erreur d'importation de PyQt5.QtWidgets (Anaconda)
À propos de la taille des points dans matplotlib
À propos du traitement des demi-teintes couleur des images
À propos de la liste de base des bases de Python
À propos de la création de l'interface graphique à l'aide de TKinter de Python
À propos de l'environnement virtuel de Python version 3.7
À propos du sensor_mode et de l'angle de vue de la picamera
Implémentation d'un système de dialogue utilisant Chainer [seq2seq]
Mémorandum des débutants en python
Mémorandum sur le QueryDict de Django
A propos des arguments de la fonction setup de PyCaret
À propos des polices japonaises de matplotlib (pour Mac)
À propos de l'équation normale de la régression linéaire
Implémentation de réseaux neuronaux "flous" avec Chainer
Note de problèmes sur la coexistence du système Python 2/3
[Python] Chapitre 02-04 Bases du programme Python (À propos des commentaires)