Kaip gauti modelio sluoksnio svorį „PyTorch“?

Kaip Gauti Modelio Sluoksnio Svori Pytorch



PyTorch sistemoje sukurti neuroninio tinklo modeliai yra pagrįsti modelio sluoksnių išmokstamais parametrais. Šie ' svoriai “ yra labai svarbūs nustatant įvesties duomenų apdorojimą, kad būtų gauti rezultatai išvestyje. Kiekviena modelio iteracija atnaujina esamus svorius, kad pagerintų išvesties kokybę ir pateiktų geresnes išvadas.

Šiame tinklaraštyje pagrindinis dėmesys bus skiriamas tam, kaip gauti modelio sluoksnio svorį PyTorch.

Koks yra „PyTorch“ modelio sluoksnio svoris?

Svoriai “ ir „ Šališkumas “ yra abi pagrindinės neuroninio tinklo modelių savybės. Tai abu mokomi parametrai, kurie reguliariai atnaujinami treniruočių ciklo metu su kiekvienu modelio važiavimu į priekį. Šis reguliarus atnaujinimas yra dėl integruoto optimizavimo priemonės, pvz., Adam optimizavimo priemonės. Neuroninių tinklų modelių tikslas yra atlikti tikslias prognozes remiantis įvesties duomenimis, o svoriai ir poslinkiai naudojami šiems rezultatams koreguoti, siekiant sumažinti nuostolius.





Kaip gauti modelio sluoksnio svorį „PyTorch“?

svoriai sluoksnio “ yra saugomi Python žodyne ir naudoja sintaksę “ state_dict() “. Žodynas naudojamas svoriams skambinti, atliekant šiuos veiksmus:



1 veiksmas: atidarykite „Colab IDE“.

Ši pamoka prasidės projekto IDE pasirinkimu. Eikite į Kolaboratoriją Interneto svetainė ir pradėkite ' Naujas bloknotas “ norėdami pradėti dirbti:







2 veiksmas: įdiekite ir importuokite bibliotekas

Nustatę „Colab“ bloknotą, „ diegti “ ir „ importuoti “ bibliotekos, apimančios visas reikalingas projekto funkcijas:

! pip diegimo žibintuvėlis

importuoti deglas

importuoti deglo vizija. modeliai

Aukščiau pateiktas kodas veikia taip:



  • pip 'Paketų diegimo programa iš python naudojama norint įdiegti esminį ' deglas “ biblioteka.
  • Toliau „ importuoti “ komanda naudojama importuoti į projektą.
  • Galiausiai „ torchvision.modeliai “ paketas taip pat importuojamas, kad būtų papildomos gilaus mokymosi modelių funkcijos:

3 veiksmas: importuokite „ResNet“ modelį

Šioje pamokoje „ ResNet50 Demonstravimui naudojamas neuroninio tinklo modelis su 50 sluoksnių, esančių torchvision bibliotekoje. Importuokite iš anksto paruoštą modelį, kaip parodyta:

pavyzdys_modelis = deglo vizija. modeliai . rimtas50 ( iš anksto apmokytas = Tiesa )

4 veiksmas: apibrėžkite modelio sluoksnį

Apibrėžkite modelio sluoksnio pavadinimą ir naudokite „ state_dict() “ metodas jo svoriams gauti, kaip parodyta:

mėginio_sluoksnio_pavadinimas = „layer2.0.conv1“

mėginio_sluoksnio_svoriai = pavyzdys_modelis. valstybės_diktas ( ) [ mėginio_sluoksnio_pavadinimas + '.svoris' ]

spausdinti ( 'Sluoksnio svoriai: \n , mėginio_sluoksnio_svoriai. figūra )

Aukščiau pateiktas kodas veikia taip:

  • Antrasis susuktas ResNet50 modelio sluoksnis priskiriamas „ mėginio_sluoksnio_pavadinimas “ kintamasis.
  • Tada ' state_dict() “ metodas naudojamas su „ pavyzdys_modelis ' kintamąjį ir jie priskiriami ' mėginio_sluoksnio_svoriai “ kintamasis.
  • mėginio_sluoksnio_pavadinimas ' ir ' .svoris “ yra pridedami kaip „“ argumentai state_dict() “ metodą, kad gautumėte svorius.
  • Galiausiai naudokite „ spausdinti () “ metodas, skirtas sluoksnių svoriams parodyti kaip išvestį:

Žemiau pateikta produkcija rodo, kad gavome modelio sluoksnio svorius Pytorch:

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

Pro-Tip

PyTorch modelio sluoksnio svoriai parodo treniruotės eigą. Šie svoriai naudojami siekiant nustatyti modelio augimą, kai jis apdoroja įvesties duomenis į išvesties rezultatus ir prognozes. Sluoksnio svorio nustatymas yra svarbus vertinant rezultatų kokybę ir tikrinant, ar reikia atlikti patobulinimus, ar ne.

Sėkmė! Mes parodėme, kaip gauti PyTorch modelio sluoksnio svorius.

Išvada

Gaukite modelio sluoksnio svorį PyTorch naudodami 'state_dict () “ metodą importavus modelį iš „torchvision“ arba naudojant pasirinktinį. Modelio sluoksnio svoriai yra išmokami parametrai, kurie nuolat atnaujinami treniruočių metu ir kataloguoja jo eigą. Šiame straipsnyje mes parodėme, kaip importuoti ResNet50 modelį iš „torchvision“ ir gauti jo antrojo vingiuoto sluoksnio svorius.