V tem blogu bomo razpravljali o tem, kako uporabljati ' bakla.no_grad ” v PyTorchu.
Kaj je metoda »torch.no_grad« v PyTorchu?
' bakla.no_grad ” se uporablja za upravljanje konteksta znotraj razvojnega okvira PyTorch. Njegov namen je ustaviti izračun gradientov za povezavo med naslednjimi plastmi modela globokega učenja. Uporabnost te metode je, da ko gradienti niso potrebni v določenem modelu, jih je mogoče onemogočiti, da se dodeli več virov strojne opreme za obdelavo vadbene zanke modela.
Kako uporabljati metodo “torch.no_grad” v PyTorchu?
Gradienti se izračunajo znotraj prehoda nazaj v PyTorch. PyTorch ima privzeto aktivirano samodejno razlikovanje za vse modele strojnega učenja. Deaktivacija gradientnega računanja je nujna za razvijalce, ki nimajo dovolj sredstev za strojno obdelavo.
Sledite spodnjim korakom, da se naučite uporabljati » bakla.no_grad ” za onemogočanje izračuna gradientov v PyTorchu:
1. korak: Zaženite Colab IDE
Google Colaboratory je zaradi svojih namenskih grafičnih procesorjev odlična izbira platforme za razvoj projektov z uporabo ogrodja PyTorch. Pojdite v Colab Spletna stran in odprite ' Nov zvezek ' kot je prikazano:
2. korak: Namestite in uvozite knjižnico Torch
Vsa funkcionalnost PyTorcha je zajeta v » svetilka ' knjižnica. Njegova namestitev in uvoz sta nujna pred začetkom dela. ' !pip ” namestitveni paket Python se uporablja za namestitev knjižnic in se uvozi v projekt s pomočjo “ uvoz ” ukaz:
!pip namestite svetilkouvozna svetilka
3. korak: Definirajte tenzor PyTorch z gradientom
Projektu dodajte tenzor PyTorch z uporabo ' torch.tensor() ” metoda. Nato mu dajte veljaven gradient z uporabo ' requires_grad=Res ”, kot je prikazano v spodnji kodi:
A = torch.tensor([5.0], requires_grad=True)
4. korak: Uporabite metodo “torch.no_grad” za odstranitev preliva
Nato odstranite gradient iz predhodno definiranega tenzorja z uporabo ' bakla.no_grad ” metoda:
z baklo.no_grad():B = A**2 + 16
Zgornja koda deluje na naslednji način:
- ' no_grad() ' metoda se uporablja znotraj ' z ” zanke.
- Vsakemu tenzorju v zanki je odstranjen gradient.
- Na koncu definirajte vzorčni aritmetični izračun z uporabo predhodno definiranega tenzorja in ga dodelite ' B ”, kot je prikazano zgoraj:
5. korak: Preverite odstranitev gradienta
Zadnji korak je preveriti, kaj je bilo pravkar narejeno. Gradient iz tenzorja ' A « je bil odstranjen in ga je treba preveriti v izhodu z uporabo » natisni() ” metoda:
print('Izračun gradienta z torch.no_grad: ', A.grad)print('\nIzvirni tenzor: ', A)
print('\nVzorec aritmetičnega izračuna: ', B)
Zgornja koda deluje na naslednji način:
- ' grad ' metoda nam daje gradient tenzorja ' A ”. V spodnjem izpisu ne prikaže nobenega, ker je bil gradient odstranjen z uporabo ' bakla.no_grad ” metoda.
- Prvotni tenzor še vedno kaže, da ima svoj gradient, kot je razvidno iz ' requires_grad=Res ” v izhodu.
- Na koncu vzorčni aritmetični izračun prikazuje rezultat prej definirane enačbe:
Opomba : Do našega zvezka Colab lahko dostopate tukaj povezava .
Pro-Tip
' bakla.no_grad ” metoda je idealna, kjer gradienti niso potrebni ali ko je treba zmanjšati obremenitev strojne opreme pri obdelavi. Druga uporaba te metode je med sklepanjem, ker se model uporablja samo za napovedovanje na podlagi novih podatkov. Ker usposabljanje ni vključeno, je popolnoma smiselno preprosto onemogočiti izračun gradientov.
uspeh! Pokazali smo vam, kako uporabiti metodo »torch.no_grad« za onemogočanje gradientov v PyTorchu.
Zaključek
Uporabi ' bakla.no_grad ' v PyTorchu tako, da jo definirate znotraj ' z ” in vsem tenzorjem v njej bo odstranjen gradient. To bo prineslo izboljšave v hitrosti obdelave in preprečilo kopičenje gradientov znotraj vadbene zanke. V tem blogu smo predstavili, kako ta ' bakla.no_grad ” lahko uporabite za onemogočanje gradientov izbranih tenzorjev v PyTorchu.