Salva modello ogni 10 epoche tensorflow.keras v2


10

Sto usando keras definite come sottomodulo in tensorflow v2. Sto allenando il mio modello usando il fit_generator()metodo. Voglio salvare il mio modello ogni 10 epoche. Come posso raggiungere questo obiettivo?

In Keras (non come un sottomodulo di tf), posso dare ModelCheckpoint(model_savepath,period=10). Ma in tf v2, hanno cambiato questo in ModelCheckpoint(model_savepath, save_freq)dove save_freqpuò essere 'epoch'nel qual caso il modello viene salvato in ogni epoca. Se save_freqè intero, il modello viene salvato dopo l'elaborazione di così tanti campioni. Ma voglio che sia dopo 10 epoche. Come posso raggiungere questo obiettivo?

Risposte:


5

Utilizzando tf.keras.callbacks.ModelCheckpointuse save_freq='epoch'e passare un argomento in più period=10.

Anche se questo non è documentato nei documenti ufficiali , questo è il modo di farlo (nota che è documentato che puoi passare period, semplicemente non spiega cosa fa).


Ricevo l'avvertenza di seguito: WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.Quindi, suppongo, questa funzionalità uscirà presto. In tal caso, come posso raggiungere questo obiettivo?
Nagabhushan SN,

2
Credo che l'unica alternativa sia calcolare il numero di esempi per epoca e passare quel numero intero a save_freqvolte il numero di epoche che desideri come intervallo tra i salvataggi
bluesummers,

@bluesummers "esempi per epoca" Questa dovrebbe essere la mia dimensione del lotto, giusto?
Tom,

Esempi per epoca sono quanti campioni vuoi passare attraverso la rete tra i punti di controllo - questo significa che se hai 100 campioni (campioni! = Lotto, lotto è un lotto di campioni) e ne metti 400, salverà ogni 4 epoche
bluesummers

1
Ho avuto la stessa domanda di @NagabhushanSN. Ho calcolato il numero di campioni per epoca per calcolare il numero di campioni dopo i quali voglio salvare il modello ma non sembra funzionare. Dimensione del lotto = 64, per il test case sto usando 10 passaggi per epoca. Se voglio salvare il modello ogni 3 epoche, il numero di campioni è 64 * 10 * 3 = 1920. Lo uso per sav_freq ma l'output mostra che il modello è stato salvato in epoca 1, epoca 2, epoca 9, epoca 11, epoca 14 e ancora in esecuzione. Non riesco a capirlo. periodL'opzione sembra funzionare bene ma con il messaggio che sarà deprecata.
beeprogrammer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.