2017-01-20 3 views
0

Wenn ich mein Modell in Keras speichern über model.save(filepath) die Datei gespeichert wird, und es gibt keine Fehler, obwohl, wenn ich die Datei öffnen, das ist, was ich bekommen:Keras Modell nicht sparend

enter image description here

Ich habe online gesucht und niemand scheint dieses Problem zu haben. Auch meine Konsole hat keine Details. Irgendwelche Ideen?

+2

Was haben Sie zum Öffnen der Datei verwendet? Es ist eine HDF5-Datei und scheint Sie mit einem Texteditor geöffnet. –

Antwort

2

Um ein Modell Verwendung dieses

from keras.models import load_model 
model = load_model(filepath) 

Sie zu laden mehr Dokumentation here

+0

Leider funktioniert das nicht für mich. model.save (...) speichert 3 Dateien mit Meta, Index und Datenerweiterungen und wenn ich versuche, load_model, sagt es Datei nicht gefunden. – rajkiran

+0

Mit dem Code, um diesen Fehler zu reproduzieren, könnten wir in einer besseren Position sein, um zu helfen :) können Sie eine neue Frage stellen? –

+0

danke für die Antwort. Ich habe das Problem jetzt gelöst. Ich habe einen Anfängerfehler gemacht - ich habe Tflearn und Keras gemischt. Keras speichern & laden funktioniert für mich. – rajkiran

3

speichern Modell

# serialize model to JSON 
model_json = model.to_json() 
with open("model.json", "w") as json_file:    
    json_file.write(model_json) 

# serialize weights to HDF5 
model.save_weights("model.h5") 
print("Saved model to disk") 

laden Modell

from keras.models import load_model 
model.load_weights("model.h5") 
1

Hier finden ist ein YouTube-Video, das genau erklärt, was Sie tun möchten: Save and load a Keras model

Es gibt drei verschiedene Speichermethoden, die Keras zur Verfügung stellt. Diese sind im obigen Video-Link (mit Beispielen) sowie unten beschrieben.

Der Grund, warum Sie den Fehler erhalten, ist, dass die HDF5-Datei nicht mit einem Texteditor lesbar ist.

Sie haben die korrekte model.save(filepath)-Funktion verwendet. Diese Speicherfunktion speichert:

  • Die Architektur des Modells, so dass das Modell neu erstellt werden kann.
  • Die Gewichte des Modells.
  • Die Trainingskonfiguration (Verlust, Optimierer).
  • Der Status des Optimierers, mit dem das Training genau dort fortgesetzt werden kann, wo Sie aufgehört haben.

dieses gespeicherte Modell laden, können Sie die folgende verwenden würden:

from keras.models import load_model 
    new_model = load_model(filepath) 

Wenn Sie einfach model.to_json() verwendet, würden Sie nur die Architektur des Modells werden zu speichern. Wenn Sie model.save_weights() verwenden, würden Sie außerdem nur die Gewichtungen des Modells speichern. Mit diesen beiden alternativen Speichertechniken würden Sie weder die Trainingskonfiguration (Verlust, Optimierer) speichern, noch würden Sie den Status des Optimierers speichern.