Schön dich kennenzulernen, dies ist mein erster Beitrag über Qiita. Ich denke, es gibt viele Orte, die nicht erreichbar sind.
Der Beispielcode des neuronalen Netzwerk-Frameworks ist meistens ein Klassifizierungsproblem, und es gibt nicht viele Beispiele für Regression, also habe ich es versucht.
Es gab einen Ort, an den es passt. Ich möchte wissen, wie man gut schreibt, also werde ich es posten.
** Ich habe mehr als 1000 Zeilen geschrieben, um dasselbe mit theano zu tun, aber 98 Zeilen mit chainer. ** Zu Chainer migrieren.
Es funktionierte gut auf GPU.
_ ** Fazit: Chainer genial ** _
python
#Ziel sind korrekte Antwortdaten
#mnist.Wenn es py ist, wird es wie ↓ geschrieben
target = diabetes['target'].astype(np.float32) #Dies funktioniert nicht, wenn die Anzahl der Mini-Chargen 2 oder mehr beträgt
Wenn es ↑ ist, wird ein Wertefehler wie ↓ angezeigt (13 ist die Stapelgröße).
ValueError: non-broadcastable output operand with shape (1,30) doesn't match the broadcast shape (13,30)
Als Ergebnis von Versuch und Irrtum funktionierte es.
python
#Ich muss mich umformen
target = diabetes['target'].astype(np.float32).reshape(len(diabetes['target']), 1)
python
n_units = 30
model = FunctionSet(l1=F.Linear(10, n_units),
l2=F.Linear(n_units, n_units),
l3=F.Linear(n_units, 1))
python
optimizer = optimizers.AdaDelta(rho=0.9)
python
# Neural net architecture
def forward(x_data, y_data, train=True):
x, t = Variable(x_data), Variable(y_data)
h1 = F.dropout(F.relu(model.l1(x)), train=train)
h2 = F.dropout(F.relu(model.l2(h1)), train=train)
y = model.l3(h2)
#Gibt durchschnittliche quadratische Fehler- und Vorhersageergebnisse zurück
#Das Vorhersageergebnis wird zurückgegeben, da der Korrelationskoeffizient später mit dem Vorhersageergebnis und den korrekten Antwortdaten berechnet wird.
return F.mean_squared_error(y, t), y
Da die richtige Antwortrate nicht angegeben werden kann, kann nicht die gleiche Bewertung wie bei der Klassifizierung vorgenommen werden.
Da es schwer zu verstehen ist, ob es sich nur um einen Fehler handelt, verwenden Sie normalerweise den Wert R 2 </ sup>?
Aus persönlichen Gründen haben wir den Korrelationskoeffizienten zwischen dem vorhergesagten Wert und den korrekten Antwortdaten bewertet.
Die Linie, die den Korrelationskoeffizienten berechnet, wird aufgrund der Sucht sehr schmutzig (siehe oben).
python
pearson = np.corrcoef(np.asarray(preds).reshape(len(preds),), np.asarray(y_test).reshape(len(preds),))
Recommended Posts