Hogyan kell használni a „torch.no_grad” fájlt a PyTorchban?

Hogyan Kell Hasznalni A Torch No Grad Fajlt A Pytorchban



A neurális hálózat rétegeihez tartozó gradiensek kiszámítása a PyTorch keretrendszer beépített funkciója. A felhasználók felmérhetik a szomszédos rétegek közötti kapcsolatot, amikor a visszafelé haladási gradienseket számítják ki. Ez azonban megterheli a hardvert, mivel nagy mennyiségű adatot kell feldolgozni, és ebben az esetben a „ torch.no_grad ” módszer használható a gradiens számítás leállítására, ahol szükséges.

Ebben a blogban megvitatjuk, hogyan kell használni a ' torch.no_grad ” metódus PyTorch-ban.

Mi az a „torch.no_grad” módszer a PyTorchban?

A ' torch.no_grad ” módszer a PyTorch fejlesztési keretrendszer kontextusának kezelésére szolgál. Célja, hogy leállítsa a gradiensek számítását a mély tanulási modell következő rétegei közötti kapcsolathoz. Ennek a módszernek az a hasznossága, hogy ha egy adott modellben nincs szükség gradiensekre, akkor letilthatóak, hogy több hardvererőforrást lehessen lefoglalni a modell betanítási hurkának feldolgozásához.







Hogyan kell használni a „torch.no_grad” módszert a PyTorch-ban?

A színátmenetek kiszámítása a PyTorch hátramenetén belül történik. Alapértelmezés szerint a PyTorch minden gépi tanulási modellhez be van kapcsolva az automatikus megkülönböztetés. A gradiens-számítás deaktiválása elengedhetetlen azon fejlesztők számára, akik nem rendelkeznek elegendő hardverfeldolgozási erőforrással.



Kövesse az alábbi lépéseket, hogy megtanulja, hogyan kell használni a ' torch.no_grad ” módszer a színátmenetek számításának letiltásához a PyTorch programban:







1. lépés: Indítsa el a Colab IDE-t

A Google Colaboratory kiváló platform választás a PyTorch keretrendszert használó projektek fejlesztéséhez, dedikált GPU-inak köszönhetően. Menj a Colabba weboldal és nyisson meg egy ' Új Notebook ' az ábrán látható módon:



2. lépés: Telepítse és importálja a Torch Library-t

A PyTorch összes funkcióját a „ fáklya ” könyvtár. Beépítése és behozatala elengedhetetlen a munka megkezdése előtt. A ' !csipog A Python telepítőcsomagja a könyvtárak telepítésére szolgál, és a projektbe a ' import 'parancs:

!pip install zseblámpa
import fáklya

3. lépés: Határozzon meg egy PyTorch tenzort gradienssel

Adjon hozzá egy PyTorch tenzort a projekthez a „ torch.tensor() ” módszerrel. Ezután adjon meg egy érvényes színátmenetet a ' vaatii_grad=Igaz ” módszer az alábbi kódban látható módon:

A = torch.tensor([5.0], követelmény_grad=igaz)

4. lépés: A „torch.no_grad” módszerrel távolítsa el a színátmenetet

Ezután távolítsa el a gradienst a korábban meghatározott tenzorból a ' torch.no_grad ” módszer:

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

A fenti kód a következőképpen működik:

  • A ' no_grad() ' módszert használnak egy ' val vel ” hurok.
  • A hurkon belüli minden tenzor gradiensét eltávolítják.
  • Végül határozzon meg egy minta aritmetikai számítást az előzőleg meghatározott tenzorral, és rendelje hozzá a „ B ” változó a fent látható módon:

5. lépés: Ellenőrizze a színátmenet eltávolítását

Az utolsó lépés annak ellenőrzése, hogy mi történt. A gradiens a tenzortól” A ' eltávolításra került, és ellenőrizni kell a kimenetben a ' nyomtatás() ” módszer:

print('Gradiens számítás a torch.no_grad segítségével: ', A.grad)
print('\nEredeti tenzor: ', A)
print('\nMinta aritmetikai számítás: ', B)

A fenti kód a következőképpen működik:

  • A ' grad 'metódus megadja nekünk a tenzor gradiensét' A ”. Egyik sem jelenik meg az alábbi kimenetben, mert a színátmenetet a ' torch.no_grad ” módszerrel.
  • Az eredeti tenzor még mindig azt mutatja, hogy megvan a gradiense, amint azt a ' vaatii_grad=Igaz ” utasítás a kimenetben.
  • Végül a minta aritmetikai számítás a korábban meghatározott egyenlet eredményét mutatja:

jegyzet : Colab-jegyzetfüzetünket ezen a címen érheti el link .

Profi tipp

A ' torch.no_grad ” módszer ideális ott, ahol nincs szükség színátmenetekre, vagy ha csökkenteni kell a hardver feldolgozási terhelését. A módszer másik felhasználási módja a következtetés során, mivel a modellt csak új adatokon alapuló előrejelzések készítésére használják. Mivel nincs benne képzés, teljesen logikus, ha egyszerűen letiltja a gradiensek számítását.

Siker! Megmutattuk, hogyan használhatja a „torch.no_grad” metódust a színátmenetek letiltására a PyTorch alkalmazásban.

Következtetés

Használja a ' torch.no_grad ” metódust a PyTorch-ban úgy, hogy egy „ val vel ” hurok és a benne található tenzorok színátmenete el lesz távolítva. Ez javítja a feldolgozási sebességet, és megakadályozza a gradiensek felhalmozódását a képzési hurkon belül. Ebben a blogban bemutattuk, hogyan torch.no_grad ” metódus használható a kiválasztott tenzorok színátmeneteinek letiltására a PyTorch alkalmazásban.