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ámpaimport 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.