Dieser Artikel setzt python3.x voraus. Bitte haben Sie auch Verständnis dafür, dass es sich um einen Python-Amateur handelt. Das erste, was ich mit maschinellem Lernen machen wollte, war ein Training an meinem eigenen Datensatz, aber das erste, woran ich festhielt, war diese Variable.
import numpy as np
import chainer as Variable
Der Typ muss variabel sein, wenn Daten an ein maschinelles Lernnetzwerk gesendet werden, das mithilfe eines Chainers definiert wurde. Zu diesem Zeitpunkt muss für die dem Argument angegebenen Daten immer np.array verwendet werden. Dieses np.array ist ein Array, das von Pythons Numpy verwendet wird und sich von der Python-Standardliste ([]) unterscheidet. In der Chainer-Dokumentation können Sie Folgendes für eine Variable angeben [data – Data array of type either numpy.ndarray or cupy.ndarray.] Da es als beschrieben wird, muss es einmal in ein Numpy-Array konvertiert werden, anstatt die Listendaten unverändert zu verwenden. Wenn Sie Gleitkomma verwenden, müssen Sie möglicherweise auch in float32 konvertieren. Ich denke, der Grund für die Verwendung von float32 ist, dass der Chainer float64 nicht unterstützt, sodass ein Fehler auftritt. Dieses Mal habe ich einige Konvertierungsmuster bis hin zu Variablen betrachtet.
Beispiel 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)
Auf diese Weise wird das Array unter Angabe von float32 in np.array konvertiert und weiter in eine Variable konvertiert.
Beispiel 2: ** Mehrdimensionales Array ** Sie können das gleiche Verfahren anwenden.
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)
Beispiel 3: ** Wenn np.array bereits existiert **
x_train = [[0.1, 0,2],[0.3, 0.4]]
x_np_train = np.array(x_train)
x_np_train.dtype
Dann wird es dtype ('float64'). Wenn Sie sich von Anfang an mit np.array-Daten befassen, gibt es meiner Meinung nach viele Fälle, in denen Sie in float32 umwandeln müssen.
x_np_train.dtype = np.float32
x_val_train = Variable(x_np_train, 1)
Beispiel 4: ** Variable wurde bereits mit einem anderen Typ erstellt **
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
Wenn, wird dtype ('float64') angezeigt. Wenn nichts unternommen wird, tritt ein Fehler auf.
x_val_train.data.dtype = np.float32
x_val_train.data.dtype
Dann wird dtype ('float32') angezeigt.
Recommended Posts