Как использовать «torch.no_grad» в PyTorch?

Kak Ispol Zovat Torch No Grad V Pytorch



Вычисление градиентов слоев нейронной сети — встроенная функция платформы PyTorch. Пользователи могут оценить связь между соседними слоями, когда градиенты рассчитываются при обратном проходе. Однако это наносит ущерб оборудованию из-за больших объемов данных, которые необходимо обработать, и, в данном случае, « torch.no_grad » можно использовать для остановки расчета градиента там, где это необходимо.

В этом блоге мы обсудим, как использовать « torch.no_grad » в PyTorch.

Что такое метод «torch.no_grad» в PyTorch?

« torch.no_grad » используется для управления контекстом в среде разработки PyTorch. Его цель — остановить расчет градиентов для связи между последующими слоями модели глубокого обучения. Полезность этого метода заключается в том, что когда в конкретной модели градиенты не требуются, их можно отключить, чтобы выделить больше аппаратных ресурсов для обработки цикла обучения модели.







Как использовать метод «torch.no_grad» в PyTorch?

Градиенты рассчитываются при обратном проходе в PyTorch. По умолчанию в PyTorch активирована автоматическая дифференциация для всех моделей машинного обучения. Деактивация вычисления градиента необходима разработчикам, у которых нет достаточных ресурсов аппаратной обработки.



Следуйте инструкциям ниже, чтобы узнать, как использовать « torch.no_grad ” метод отключения расчета градиентов в PyTorch:







Шаг 1. Запустите Colab IDE.

Google Colaboratory — отличный выбор платформы для разработки проектов с использованием платформы PyTorch благодаря выделенным графическим процессорам. Иди в Колаб Веб-сайт и откройте « Новый блокнот ' как показано:



Шаг 2. Установите и импортируйте библиотеку Torch.

Вся функциональность PyTorch инкапсулирована в « факел » библиотека. Его установка и импорт необходимы перед началом работы. « !пип » установочный пакет Python используется для установки библиотек и импортируется в проект с помощью « Импортировать » команда:

!pip установить факел
импортный фонарь

Шаг 3. Определите тензор PyTorch с градиентом

Добавьте в проект тензор PyTorch, используя « факел.тензор() метод. Затем придайте ему действительный градиент, используя « require_grad = Истина », как показано в коде ниже:

A = torch.tensor([5.0], require_grad=True)

Шаг 4. Используйте метод «torch.no_grad», чтобы удалить градиент.

Затем удалите градиент из ранее определенного тензора, используя « torch.no_grad » метод:

с torch.no_grad():
Б = А**2 + 16

Приведенный выше код работает следующим образом:

  • « no_grad() ” метод используется внутри “ с ' петля.
  • Градиент каждого тензора, содержащегося внутри цикла, удален.
  • Наконец, определите образец арифметического вычисления, используя ранее определенный тензор, и присвойте его « Б переменная, как показано выше:

Шаг 5. Проверьте удаление градиента

Последний шаг — проверить, что только что было сделано. Градиент от тензора « А был удален, и его необходимо проверить в выводе с помощью команды « Распечатать() » метод:

print('Вычисление градиента с помощью torch.no_grad: ', A.grad)
print('\nИсходный тензор: ', A)
print('\nПример арифметического расчета: ', B)

Приведенный выше код работает следующим образом:

  • « выпускник ” метод дает нам градиент тензора “ А ». В выводе ниже ничего не отображается, поскольку градиент был удален с помощью « torch.no_grad метод.
  • Исходный тензор по-прежнему показывает, что он имеет градиент, как видно из « require_grad = Истина ” в выводе.
  • Наконец, пример арифметического расчета показывает результат уравнения, определенного ранее:

Примечание : Вы можете получить доступ к нашему блокноту Colab по этому адресу. связь .

Профессиональный совет

« torch.no_grad «Метод идеален там, где градиенты не нужны или когда есть необходимость снизить вычислительную нагрузку на оборудование. Другое использование этого метода — во время вывода, поскольку модель используется только для прогнозирования на основе новых данных. Поскольку обучение не требуется, имеет смысл просто отключить расчет градиентов.

Успех! Мы показали вам, как использовать метод «torch.no_grad» для отключения градиентов в PyTorch.

Заключение

Использовать ' torch.no_grad ” в PyTorch, определив его внутри “ с » и у всех тензоров, содержащихся внутри, будет удален градиент. Это приведет к улучшению скорости обработки и предотвратит накопление градиентов в цикле обучения. В этом блоге мы продемонстрировали, как это « torch.no_grad » можно использовать для отключения градиентов выбранных тензоров в PyTorch.