Comentarii

Copiați linkul Citat răspuns

greutăților

felipefariax comentat 6 iulie 2015

Ar fi minunat să resetați sau să reinițializați un model, pentru a aplica din nou inițializările de greutate ale fiecărui strat. Acest lucru ar fi util atunci când trebuie să rulăm aceeași arhitectură de mai multe ori pentru a prelua unele valori cum ar fi acuratețea, precizia, rechemarea etc. Dacă trebuie să recompilăm același model la fiecare rulare, vom pierde mult timp.

În exemplul meu, trebuie să rulez o grilă de căutare pe unele hiperparamuri și să evaluez modelul de 30 de ori. Fiecare recompilare dura aproximativ 1 s.

Am venit cu o soluție ca aceasta:

def reset_model (model):

pentru layer în model.layer:
dacă hasattr (layer, 'init'):
init = getattr (layer, 'init')
new_weights = init (layer.get_weights () [0] .shape) .get_value ()
bias = shared_zeros (layer.get_weights () [1] .shape) .get_value ()
layer.set_weights ([new_weights, bias])

Ce crezi?

Textul a fost actualizat cu succes, dar s-au întâlnit aceste erori:

wxs comentat 6 iulie 2015

Acest lucru nu va funcționa pentru unele modele care au inițializatoare suplimentare, cum ar fi inner_init în modelele recurente.

Puteți reseta exact la aceleași greutăți (mai degrabă decât re-inițializa la întâmplare) doar făcând

și apoi mai târziu

dar adăugarea unei funcții de reinițializare ar putea fi utilă.