Градиентное накопление в PyTorch может снизить производительность обучения по нескольким причинам:
- Неправильное обновление параметров. iifx.dev Если не сбрасывать градиенты, то они будут включать информацию из предыдущих партий, что приводит к некорректному обновлению параметров модели. iifx.dev В результате модель может не прийти к хорошему решению или обучаться значительно медленнее и с большими отклонениями. iifx.dev
- Влияние на слои, зависящие от размера партии. discuss.pytorch.org Например, на слои batchnorm, которые используют статистику текущей партии для обновления текущей статистики. discuss.pytorch.org Чем меньше размер партии, тем больше шума в этих обновлениях статистики. discuss.pytorch.org
Однако в целом градиентное накопление может быть полезно, особенно при работе с большими архитектурами, которые потребляют много памяти графического процессора. kozodoi.me iq.opengenus.org