В този блог ще обсъдим как да използвате „ факла.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.