2017-01-28 6 views
1

Ich habe Probleme mit der Formatierung meiner Daten.Keras Eingabe-Dimension

Ich entwarf ein einfaches Modell in Keras. Es besteht aus zwei separaten Modellen (Schicht und LSTM Schicht). Diese beiden Modelle werden dann mit Merge verschmolzen. Sie werden dann durch einige Faltungsschichten miteinander kombiniert.

Das sind meine eingebetteten Beispielsätze.

x1 
>>> array([[ 0, 25, 0, 0, 0]], dtype=int32) 
y1 
>>> array([[42, 10, 0, 0, 0, 10]], dtype=int32) 

Verwenden predict Ich werde einzigen Ausgang für die kombinierten Sätze gewünscht.

model.predict([x1,y1]) 
>>> array([[ 0.92327869]]) 

Ich kann sogar verwenden

model.fit([x,y],gold[0]) 

das Modell zu trainieren, wo

gold[0] 
>>> array([ 1.]) 

Die Frage ist, wie kann ich Beispiele Format x_i und y_i, so dass ich es verwenden kann in passender Funktion. model.predict([[x1,x2],[y1,y2]]) hat nicht funktioniert, Erträge

TypeError: list indices must be integers or slices, not list 

Antwort

0

So nach dem Keras Embedding Dokumentation, die Sie als eine Eingabe zur Verfügung stellen müssen eine numpy.array der Dimension Embedding Schicht 2. Da Sie eine mehrere Eingänge haben - müssen Sie eine Liste zur Verfügung zu stellen von numpy Arrays, um sie an mehrere Eingänge zu füttern.

Im letzten Fall jedoch füttern Sie eine Liste von Listen von Eingängen. Dies verursachte ein Problem. Um dies zu lösen, müssen Sie numpy.concatenate diese beiden Arrays durch:

x = numpy.concatenate((x1, x2), axis = 0) 
y = numpy.concatenate((y1, y2), axis = 0)