2017-02-19 4 views
3

ich den Beispielcode hier verwendet haben: https://github.com/fchollet/keras/issues/2295Keras load_model arbeiten nicht nach dem Training

Ich bin nicht in der Lage mein Modell zu laden, nachdem es in keras Training. Ich erhalte die folgende Fehlermeldung:

ValueError: Optimizer weight shape (3, 3, 512, 512) not compatible with provided weight shape (256, 43)

ich versucht, mit HDFView und Löschen der optimiser Gewichte und neu geladen wird. Aber dann bekomme ich den Fehler:

ValueError: ('shapes (10,4224) and (1128,256) not aligned: 4224 (dim 1) != 1128 (dim 0)', (10, 4224), (1128, 256)) 
Apply node that caused the error: Dot22(Reshape{2}.0, lstm_2_W_i) 
Toposort index: 249 
Inputs types: [TensorType(float32, matrix), TensorType(float32, matrix)] 
Inputs shapes: [(10, 4224), (1128, 256)] 
Inputs strides: [(16896, 4), (1024, 4)] 
Inputs values: ['not shown', 'not shown'] 
Outputs clients: [[Elemwise{Add}[(0, 0)](Dot22.0, InplaceDimShuffle{x,0}.0)]] 

Ich habe auch versucht, die Architektur zu JSON Speichern und Speichern von Gewichten getrennt und dann geladen, sondern auch das fehlschlägt.

Antwort

1

Ich konnte einen Workaround erstellen. Ich konnte das trainierte Modell laden Sie die folgenden Schritte verwenden:

  1. das sequenzielle Modell erstellen. Beispiel: model = Sequential() model.add(...) model.add(...) model.compile(...) model.fit(...)

  2. Nach dem Training speichert nur Modell mit Gewichten model.save_weights() Beispiel: model.save_weights(SaveLocation)

  3. die Modelle Gewichte zu laden, erstellen das Modell programmatisch wie in Schritt 1, aber nicht Verwenden Sie die Funktion model.compile. Beispiel: model = Sequential() model.add(...) model.add(...) model.load_weights(weightFile)

  4. Die Gewichte nun erfolgreich geladen werden.

Verwandte Themen