Как да използвам „torch.no_grad“ в PyTorch?

Kak Da Izpolzvam Torch No Grad V Pytorch



Изчисляването на градиенти за слоевете на невронна мрежа е вградена функция на рамката PyTorch. Потребителите могат да преценят връзката между съседни слоеве, когато градиентите се изчисляват при преминаване назад. Това обаче оказва влияние върху хардуера поради големите обеми данни, които трябва да бъдат обработени и в този случай „ факла.no_grad ” може да се използва за спиране на изчислението на градиента, където е необходимо.

В този блог ще обсъдим как да използвате „ факла.no_grad ” в PyTorch.

Какво представлява методът „torch.no_grad“ в PyTorch?

факла.no_grad ” методът се използва за управление на контекста в рамката за разработка на PyTorch. Неговата цел е да спре изчисляването на градиенти за връзката между следващите слоеве на модела за дълбоко обучение. Полезността на този метод е, че когато градиентите не са необходими в конкретен модел, тогава те могат да бъдат деактивирани, за да се разпределят повече хардуерни ресурси за обработката на тренировъчния цикъл на модела.







Как да използвам метода „torch.no_grad“ в PyTorch?

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



Следвайте стъпките по-долу, за да научите как да използвате „ факла.no_grad ” за деактивиране на изчисляването на градиенти в PyTorch:







Стъпка 1: Стартирайте Colab IDE

Google Colaboratory е отличен избор на платформа за разработване на проекти, използващи рамката PyTorch, поради своите специални графични процесори. Отидете в Colab уебсайт и отворете „ Нов бележник ' както е показано:



Стъпка 2: Инсталирайте и импортирайте Torch Library

Цялата функционалност на PyTorch е капсулирана от „ факла ' библиотека. Инсталирането и импортирането му са от съществено значение преди започване на работа. „ !пип ' инсталационният пакет на Python се използва за инсталиране на библиотеки и се импортира в проекта с помощта на ' импортиране ” команда:

!pip инсталирайте горелка
факел за внос

Стъпка 3: Дефинирайте тензор на PyTorch с градиент

Добавете тензор на PyTorch към проекта, като използвате „ torch.tensor() ” метод. След това му дайте валиден градиент, като използвате „ requires_grad=Вярно ”, както е показано в кода по-долу:

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

Стъпка 4: Използвайте метода “torch.no_grad”, за да премахнете градиента

След това премахнете градиента от предварително дефинирания тензор, като използвате „ факла.no_grad ” метод:

с torch.no_grad():
B = A**2 + 16

Горният код работи по следния начин:

  • no_grad() ' методът се използва вътре в ' с ” цикъл.
  • Градиентът на всеки тензор, съдържащ се в цикъла, е премахнат.
  • И накрая, дефинирайте примерно аритметично изчисление, като използвате предварително дефинирания тензор и го присвоете на „ Б ” променлива, както е показано по-горе:

Стъпка 5: Проверете премахването на градиента

Последната стъпка е да проверите какво току-що е направено. Градиентът от тензор “ А ” беше премахнато и трябва да се провери в изхода с помощта на „ печат () ” метод:

print('Изчисляване на градиента с torch.no_grad: ', A.grad)
print('\nОригинален тензор: ', A)
print('\nПримерно аритметично изчисление: ', B)

Горният код работи по следния начин:

  • град ' методът ни дава градиента на тензора ' А ”. Не показва нищо в резултата по-долу, защото градиентът е премахнат с помощта на „ факла.no_grad ” метод.
  • Оригиналният тензор все още показва, че има своя градиент, както се вижда от „ requires_grad=Вярно ” израз в изхода.
  • И накрая, примерното аритметично изчисление показва резултата от уравнението, дефинирано по-рано:

Забележка : Можете да получите достъп до нашия бележник Colab тук връзка .

Професионален съвет

факла.no_grad ” методът е идеален, когато градиентите не са необходими или когато има нужда да се намали натоварването на обработката на хардуера. Друга употреба на този метод е по време на извод, тъй като моделът се използва само за правене на прогнози въз основа на нови данни. Тъй като не е включено обучение, има смисъл просто да деактивирате изчисляването на градиенти.

Успех! Показахме ви как да използвате метода „torch.no_grad“, за да деактивирате градиенти в PyTorch.

Заключение

Използвай ' факла.no_grad ” в PyTorch, като го дефинирате вътре в „ с ” цикъл и градиентът на всички тензори, съдържащи се в него, ще бъде премахнат. Това ще доведе до подобрения в скоростите на обработка и ще предотврати натрупването на градиенти в цикъла на обучение. В този блог сме демонстрирали как това „ факла.no_grad ” може да се използва за деактивиране на градиентите на избрани тензори в PyTorch.