Frage

Ich habe derzeit Schwierigkeiten zu verstehen, wie ich mein Regressionsnetz mit Keras trainieren soll. Ich bin mir nicht sicher, wie ich meine Eingabedaten an das Netzwerk weitergeben soll.

Sowohl die Eingabedaten als auch die Ausgabedaten werden als Liste von Numpy -Arrays gespeichert.

Jedes Eingangsnumpy -Array ist eine Matrix mit (400 Zeilen, x -Spalten). Jedes Ausgabe -Numpy -Array ist eine Matrix, die (x Anzahl der Zeilen, 13 Spalten) hat (x Zeilen).

Die Eingangsdimension beträgt also 400 und die Ausgabe 13. Aber wie übergeben ich jede dieser Sätze innerhalb der Liste an das Training?

# Multilayer Perceptron
model = Sequential()    # Feedforward
model.add(Dense(3, input_dim=400, output_dim=13))
model.add(Activation('tanh'))
model.add(Dense(1))
model.compile('sgd', 'mse')

Ich weiß, dass Modell.Fit das Modell angesichts des Parameters, wie es tatsächlich die Daten einnimmt Für die gesamte Matrix, die an die Liste angehängt ist.

War es hilfreich?

Lösung

Wenn Sie sich die Keras -Dokumentation ansehen, werden Sie feststellen, dass für die ersten Ebenen des sequentiellen Modells die erforderliche Eingabe annimmt. Zum Beispiel ist Ihre erste Schicht eine dichte Schicht mit Eingangsabmessung als 400. Daher sollte jeder Eingang ein numpiges Array von Größe 400 sein. Sie können ein 2D -Numpy -Array mit Größe (x, 400) übergeben. (Ich gehe davon aus, dass x die Anzahl der Eingabebeispiele ist). Ihre Ausgabe hat 13 Dimensionen für jedes Ausgabedokument, und daher muss Ihre endgültige dichte Schicht sein model.add(Dense(13)) anstelle von model.add (dichter (1)).

Wenn Sie zu dem wissen, wie es weiß, wird die erste Dimension von X als Anzahl der Trainingsbeispiele und die zweite Dimension als Größe jedes Beispiels verwendet. Ähnlich für die Ausgangsschicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top