Модель обучения в режиме eval () дает лучший результат в PyTorch?

#deep-learning #pytorch #dropout

#глубокое обучение #pytorch #отсев

Вопрос:

У меня есть модель с выпадающими слоями (с p = 0.6). Я закончил обучение модели в .eval() режиме и снова обучил модель в .train() режиме, я обнаружил, что режим обучения .eval() дал мне лучшую точность и более быстрое сокращение потерь при обучении данных,

train() : Потеря последовательности: 0.832, потеря проверки: 0.821
eval() : Потеря последовательности: 0,323, потеря проверки: 0,251

Почему это так?

Ответ №1:

Кажется, что архитектура модели проста и в режиме обучения не способна фиксировать особенности данных и, следовательно, подвергается недостаточной подгонке.

eval() отключает отсев и пакетную нормализацию, среди других модулей.

Это означает, что модель лучше обучается без отсева, помогая модели лучше обучаться с большим количеством нейронов, также помогает увеличение размера слоя, увеличение количества слоев, уменьшение вероятности отсева.