PyTorch `факел.нет_град` против `факел.вывод_моде`

#machine-learning #pytorch #artificial-intelligence #gradient-descent #inference

Вопрос:

PyTorch имеет новую функциональность torch.inference_mode с версии 1.1, которая «аналогична torch.no_grad … Код, выполняемый в этом режиме, повышает производительность за счет отключения отслеживания просмотров и сбоев счетчика версий».

Если я просто оцениваю свою модель во время тестирования (т. Е. Не тренируюсь), есть ли какая-либо ситуация, в которой torch.no_grad это предпочтительнее torch.inference_mode ? Я планирую заменить каждый экземпляр первого последним, и я рассчитываю использовать ошибки времени выполнения в качестве ограждения (т. Е. Я верю, что любая проблема проявит себя как ошибка времени выполнения, и если она не проявится как ошибка времени выполнения, то я предполагаю, что ее действительно предпочтительнее использовать torch.inference_mode ).

Более подробная информация о том, почему был разработан режим вывода, упоминается в подкасте разработчика PyTorch.

Ответ №1:

Да, torch.inference_mode действительно предпочтительнее torch.no_grad во всех ситуациях, когда режим вывода не выдает ошибку во время выполнения.