Kaip „PyTorch“ naudoti „torch.no_grad“?

Kaip Pytorch Naudoti Torch No Grad



Neuroninio tinklo sluoksnių gradientų skaičiavimas yra integruota PyTorch sistemos funkcija. Vartotojai gali įvertinti ryšį tarp gretimų sluoksnių, kai skaičiuojami gradientai atgaline eiga. Tačiau tai kenkia aparatinei įrangai, nes reikia apdoroti didelius duomenų kiekius ir šiuo atveju „ torch.no_grad “ metodas gali būti naudojamas gradiento skaičiavimui sustabdyti, kur tik reikia.

Šiame tinklaraštyje aptarsime, kaip naudoti torch.no_grad “ metodas PyTorch.

Kas yra „torch.no_grad“ metodas „PyTorch“?

torch.no_grad “ metodas naudojamas konteksto valdymui PyTorch kūrimo sistemoje. Jo tikslas yra sustabdyti gradientų skaičiavimą ryšiui tarp tolesnių giluminio mokymosi modelio sluoksnių. Šio metodo naudingumas yra tas, kad kai konkrečiame modelyje gradientai nereikalingi, juos galima išjungti, kad būtų skirta daugiau aparatinės įrangos išteklių modelio mokymo kilpai apdoroti.







Kaip „PyTorch“ naudoti „torch.no_grad“ metodą?

Gradientai apskaičiuojami naudojant „PyTorch“ važiavimą atgal. Pagal numatytuosius nustatymus „PyTorch“ automatinis diferencijavimas suaktyvintas visuose mašininio mokymosi modeliuose. Gradiento skaičiavimo išjungimas yra būtinas kūrėjams, kurie neturi pakankamai aparatinės įrangos apdorojimo išteklių.



Atlikite toliau nurodytus veiksmus, kad sužinotumėte, kaip naudoti torch.no_grad “ metodas, skirtas išjungti gradientų skaičiavimą „PyTorch“:







1 veiksmas: paleiskite „Colab IDE“.

„Google Colaboratory“ yra puikus platformos pasirinkimas projektams, naudojant „PyTorch“ sistemą, dėl specialių GPU. Eikite į „Colab“. Interneto svetainė ir atidarykite ' Naujas bloknotas ' taip, kaip parodyta:



2 veiksmas: įdiekite ir importuokite „Torch Library“.

Visos „PyTorch“ funkcijos yra įtrauktos į „ deglas “ biblioteka. Prieš pradedant darbą būtina jį sumontuoti ir importuoti. „ !pip ' Python diegimo paketas naudojamas bibliotekoms įdiegti ir jis importuojamas į projektą naudojant ' importuoti “ komanda:

!pip įdiegti žibintuvėlį
importo žibintuvėlis

3 veiksmas: apibrėžkite „PyTorch Tensor“ su gradientu

Pridėkite „PyTorch“ tenzorių prie projekto naudodami „ torch.tensor() “ metodas. Tada suteikite jam tinkamą gradientą naudodami „ prasa_grad=Tiesa “ metodas, kaip parodyta toliau pateiktame kode:

A = torch.tensor ([5.0], reikalauja_grad = Tiesa)

4 veiksmas: naudokite „torch.no_grad“ metodą, kad pašalintumėte gradientą

Tada pašalinkite gradientą iš anksčiau apibrėžto tenzoriaus naudodami „ torch.no_grad “ metodas:

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

Aukščiau pateiktas kodas veikia taip:

  • no_grad() ' metodas naudojamas ' su “ kilpa.
  • Kiekvienas kilpoje esantis tenzorius pašalinamas.
  • Galiausiai apibrėžkite pavyzdinį aritmetinį skaičiavimą naudodami anksčiau apibrėžtą tenzorių ir priskirkite jį „ B “ kintamasis, kaip parodyta aukščiau:

5 veiksmas: patikrinkite gradiento pašalinimą

Paskutinis žingsnis yra patikrinti, kas ką tik buvo padaryta. Gradientas nuo tenzoriaus “ A “ buvo pašalintas ir jis turi būti patikrintas išvestyje naudojant „ spausdinti () “ metodas:

print('Gradiento skaičiavimas naudojant torch.no_grad:', A.grad)
print('\nOriginal Tensor: ', A)
print('\nAritmetinio skaičiavimo pavyzdys: ', B)

Aukščiau pateiktas kodas veikia taip:

  • grad 'metodas suteikia mums tenzoriaus gradientą' A “. Žemiau esančioje išvestyje jis nerodomas, nes gradientas buvo pašalintas naudojant ' torch.no_grad “ metodas.
  • Pradinis tenzorius vis dar rodo, kad jis turi gradientą, kaip matyti iš ' prasa_grad=Tiesa “ teiginys išvestyje.
  • Galiausiai, pavyzdinis aritmetinis skaičiavimas rodo anksčiau apibrėžtos lygties rezultatą:

Pastaba : „Colab“ bloknotą galite pasiekti šiuo adresu nuoroda .

Pro-Tip

torch.no_grad “ metodas yra idealus ten, kur gradientai nereikalingi arba kai reikia sumažinti aparatinės įrangos apdorojimo apkrovą. Kitas šio metodo panaudojimas yra išvados metu, nes modelis naudojamas tik prognozėms, pagrįstoms naujais duomenimis. Kadangi nėra jokio mokymo, prasminga tiesiog išjungti gradientų skaičiavimą.

Sėkmė! Mes parodėme, kaip naudoti „torch.no_grad“ metodą, kad išjungtumėte gradientus „PyTorch“.

Išvada

Naudoti ' torch.no_grad “ metodą PyTorch apibrėždami jį „ su “ kilpa ir visų ten esančių tenzorių gradientas bus pašalintas. Taip pagerinsite apdorojimo greitį ir išvengsite gradientų kaupimosi treniruočių cikle. Šiame tinklaraštyje mes parodėme, kaip šis ' torch.no_grad “ metodas gali būti naudojamas norint išjungti pasirinktų tenzorių gradientus „PyTorch“.