Скинути/повторно ініціалізувати ваги/параметри моделі # 341

Коментарі

Копіювати посилання Цитувати відповідь

keras-teamkeras

феліпефаріакс прокоментував 6 липня 2015 року

Було б чудово скинути або повторно ініціалізувати модель, щоб повторно застосувати ваги ініціалізації кожного шару. Це було б корисно, коли нам потрібно запустити одну і ту ж архітектуру моделі кілька разів, щоб отримати деякі показники, такі як точність, точність, відкликання тощо. Якщо нам доведеться перекомпілювати одну і ту ж модель кожного запуску, ми втратимо багато часу.

У моєму прикладі мені потрібно запустити gridsearch на деяких гіперпарамах і 30 разів оцінити модель. Кожна рекомпіляція тривала приблизно 1 сек.

Я придумав таке рішення:

def reset_model (модель):

для шару в моделі. шари:
якщо hasattr (шар, 'init'):
init = getattr (шар, 'init')
new_weights = init (layer.get_weights () [0] .shape) .get_value ()
упередження = shared_zeros (layer.get_weights () [1] .shape) .get_value ()
layer.set_weights ([new_weights, bias])

Що ти думаєш?

Текст успішно оновлено, але виявлені такі помилки:

wxs прокоментував 6 липня 2015 року

Це не буде працювати для деяких моделей, які мають додаткові ініціалізатори, наприклад inner_init у повторюваних моделях.

Ви можете скинути до однакових ваг (а не повторно ініціалізувати випадково), просто виконавши

а потім пізніше робити

але додавання функції повторної ініціалізації може бути корисним.