Вы можете выбрать Дискриминационный уровень обучения , который использует разные скорости обучения для разных слоев в модели.
- Создание групп слоев модели с использованием
# creates 3 layer groups with start, middle and end groups
learn.split(lambda m: (m[0][6], m[1]))
# only randomly initialized head now trainable
learn.freeze()
Примечание: Нет необходимости вручную разбивать слои fit_one_cycle
автоматически разбивает случайно.
Ручная настройка скорости LR и снижения веса для каждой группы слоев
# all layers now trainable
learn.unfreeze()
# optionally, separate LR and WD for each group for 5 epochs
learn.fit_one_cycle(5, max_lr=slice(1e-5,1e-3), wd=(1e-4,1e-4,1e-1))