Bis zum letzten Mal schrieb ich über die grundlegenden Objekte, aus denen Chainer besteht. Ab diesem Zeitpunkt möchte ich mit diesen Objekten tatsächlich ein neuronales Netzwerk implementieren.
Wenn Sie ein Programm schreiben, das ein neuronales Netzwerk zusammensetzt, besteht die Gesamtansicht ungefähr aus den folgenden fünf.
Es ist ein Programm, das Daten für das Training des Modells aufbereitet. Es gibt verschiedene Arten von Daten wie Sätze, Bilder und Töne, aber wir verarbeiten sie zu einer Datenform, die für das zu erstellende neuronale Netzwerk geeignet ist.
Beschreiben Sie eine Klasse, die die Chain-Klasse erbt. Weitere Informationen finden Sie unter hier.
class MyChain(Chain):
def __init__(self):
super(MyChain, self).__init__(
Funktionserklärung mit Parametern
)
def __call__(self, x, y):
Verlust (Fehler) -Funktion
Beschreibt den Prozess der Optimierung des Modells (Minimierung des Fehlers). Weitere Informationen finden Sie unter hier.
model = MyChain()
optimizer = optimizer.Adam()
optimizer.setup(model)
Lernt die angegebene Anzahl von Malen. Je nach Gegenstand kann eine vorzeitige Beendigung durchgeführt werden, diesmal geben wir jedoch einfach die Epoche (Anzahl der Lernvorgänge) an. Es scheint, dass der Code von der Gradienteninitialisierung bis zur Parameteraktualisierung fast versprochen ist.
for epoch in range(Anzahl der Wiederholungen):
model.zerograds() #Gradienteninitialisierung
loss = model(train, target) #Fehlerberechnung
loss.backward() #Gradientenberechnung
optimizer.update() #Parameteraktualisierung
Speichern Sie das Modell des Trainingsergebnisses und führen Sie den Test durch.
Ich möchte diese Informationen nicht in einen Artikel einfügen, also ab dem nächsten Mal
Ich werde in kleinen Teilen darüber schreiben. Bis hierher für diese Zeit
Takayoshi Yamashita Deep Learning Kodansha, das in der Abbildung zu sehen ist Hiroyuki Shinno Praktisches Deep Learning mit Chainer-How zur Implementierung komplexer NN-Ohm
Recommended Posts