2016-05-10 8 views
4

Ich habe mich nur gefragt, was ist der beste Weg, um den Zustand eines Modells zu speichern, während es zu optimieren. Ich möchte das tun, damit ich es eine Weile laufen lassen, speichern und später wieder darauf zurückkommen kann. Ich weiß, dass es eine Funktion gibt, um die Gewichte zu speichern, und eine andere Funktion, um das Modell als JSON zu speichern. Während des Lernens musste ich sowohl die Gewichte als auch die Parameter des Modells speichern. Dazu gehören Parameter wie Impuls und Lernrate. Gibt es eine Möglichkeit, das Modell und die Gewichtungen in derselben Datei zu speichern? Ich habe gelesen, dass es nicht gut ist, Essiggurken zu verwenden. Würden auch die Impulse für den Graden decent in den Modellen JSON oder in den Gewichten enthalten sein?Keras, der beste Weg, um den Zustand bei der Optimierung zu speichern

Antwort

2

Sie könnten ein tar-Archiv erstellen, das die Gewichtungen und die Architektur enthält, sowie eine Beizdatei, die den von model.optimizer.get_state() zurückgegebenen Optimierungsstatus enthält.

+0

'Attribute: 'Adam' Objekt hat kein Attribut‚get_state'' –

+0

@MatthewKleinsmith: Die API kann sich geändert haben, da ich dies schrieb. –

+0

Ja, es passiert. Mein Kommentar war rein informativ. –

0
from keras.models import load_model 

model.save('my_model.h5') # creates a HDF5 file 'my_model.h5' 
del model # deletes the existing model 

# returns a compiled model 
# identical to the previous one 
model = load_model('my_model.h5') 

You can use model.save(filepath) to save a Keras model into a single HDF5 file which will contain:

  • the architecture of the model, allowing to re-create the model
  • the weights of the model
  • the training configuration (loss, optimizer)
  • the state of the optimizer, allowing to resume training exactly where you left off.

You can then use keras.models.load_model(filepath) to reinstantiate your model. load_model will also take care of compiling the model using the saved training configuration (unless the model was never compiled in the first place).

Keras FAQ: How can I save a Keras model?