#deep-learning #pytorch #dropout
#глубокое обучение #pytorch #отсев
Вопрос:
У меня есть модель с выпадающими слоями (с p = 0.6). Я закончил обучение модели в .eval()
режиме и снова обучил модель в .train()
режиме, я обнаружил, что режим обучения .eval()
дал мне лучшую точность и более быстрое сокращение потерь при обучении данных,
train()
: Потеря последовательности: 0.832, потеря проверки: 0.821
eval()
: Потеря последовательности: 0,323, потеря проверки: 0,251
Почему это так?
Ответ №1:
Кажется, что архитектура модели проста и в режиме обучения не способна фиксировать особенности данных и, следовательно, подвергается недостаточной подгонке.
eval()
отключает отсев и пакетную нормализацию, среди других модулей.
Это означает, что модель лучше обучается без отсева, помогая модели лучше обучаться с большим количеством нейронов, также помогает увеличение размера слоя, увеличение количества слоев, уменьшение вероятности отсева.