Paano Gumagana ang Paraan ng 'Random na Pagbubura' Sa PyTorch?

Paano Gumagana Ang Paraan Ng Random Na Pagbubura Sa Pytorch



Ang bisa ng balangkas ng PyTorch para sa pagbuo ng kumplikado at makabagong mga modelo ng Machine Learning ay dahil sa malawak nitong hanay ng mga tampok na nagpapalaki at ang ' Random na Pagbubura ” isa na rito ang pamamaraan. Gaya ng iminumungkahi ng pangalan, random itong pumipili ng isang imahe at nag-aalis ng bahagi ng data nito upang gayahin ang isang totoong sitwasyon kung saan ipinakita ang hindi kumpletong data. Pinapabuti nito ang kakayahan ng isang modelo na umangkop at gumanap nang maayos sa bago at mapaghamong mga sitwasyon.

Tatalakayin ng blog na ito kung paano ang ' Random na Pagbubura ” paraan ay gumagana sa PyTorch.

Bakit Ginagamit sa PyTorch ang 'Random Erasing' Method?

Ang random na pag-alis ng data mula sa mga larawan ay nagpapakita ng problema para sa pagsasanay ng mga modelo ng pagsusuri ng imahe dahil napipilitan silang umangkop sa hindi sapat na data. Naghahanda ito ng modelo para sa mga gawain sa totoong mundo kung saan hindi palaging naroroon ang kumpletong data. Ang modelo ay nagiging mas mahusay sa kakayahang gumuhit ng mga hinuha mula sa lahat ng uri ng data at pamahalaan upang ipakita ang mga resulta. Ang pagpili ng mga pixel para sa pag-alis ay random kaya walang pagpapakilala ng bias at ang resultang imahe ay ginagamit bilang input data sa panahon ng pagsasanay.







Paano Gumagana ang Paraan ng 'Random na Pagbubura' sa PyTorch?

Ang Random Erasing na paraan ay ginagamit upang gawing mas mahusay ang isang modelo ng malalim na pag-aaral upang mahawakan ang mga tunay na aplikasyon. Sundin ang mga hakbang na ibinigay sa ibaba upang matutunan kung paano ito gamitin sa iyong mga proyekto sa PyTorch upang mapataas ang kanilang pamamahala ng data at pagbutihin ang mga kakayahan sa paghuhula:



Hakbang 1: I-set up ang Colaboratory IDE

Ang Google Colab ay isang mainam na pagpipilian para sa pagbuo ng mga modelo ng AI gamit ang PyTorch framework. Mag-navigate sa Colaboratory website at maglunsad ng ' Bagong Notebook ”:







Hakbang 2: I-import ang Mga Kinakailangang Aklatan

Gamitin ang ' !pip ” package installer na ibinigay ng Python para mag-install ng mga library at gamitin ang “ angkat ” utos upang i-import ang mga ito sa proyekto:

angkat tanglaw

angkat torchvision. nagbabago bilang ts

mula sa PIL angkat Imahe

angkat matplotlib. pyplot bilang plt

Ang paglalarawan ng ibinigay na code ay ang mga sumusunod:



  • I-import ang ' tanglaw 'aklatan gamit ang ' angkat ” utos.
  • Ang ' torchvision.nagbabagong anyo ” package ay naglalaman ng mga pagbabago para sa Random na Pagbubura.
  • PIL ” ay ang python image library at naglalaman ito ng functionality para sa pagproseso ng mga imahe.
  • Ang ' matplotlib.pyplot 'Ang library ay ginagamit para sa paggunita sa orihinal at binagong mga imahe:

Hakbang 3: I-upload ang Input na larawan

I-upload ang larawan sa seksyong Mga File:

Susunod, i-load ang input na imahe gamit ang ' bukas() 'paraan ng module na 'Larawan':

larawan = Imahe. bukas ( 'a2.jpeg' )

Hakbang 4: Tukuyin ang Transform para Magsagawa ng Mga Pagbabago

Ngayon, tukuyin ang isang ' RandomErasing ” transformer na magpapabago sa imahe sa pamamagitan ng pagpili sa random na rectangular na rehiyon nito at pagbubura sa mga pixel nito. Bilang karagdagan, i-convert ang input na imahe sa torch sensor gamit ang ' ToTensor() 'paraan kung ito ay isang PIL na imahe at pagkatapos ay i-convert ito pabalik sa PIL na imahe sa pamamagitan ng ' ToPILImage() ”:

ibahin ang anyo = ts. Mag-compose ( [ ts. ToTensor ( ) , ts. RandomErasing ( p = 0.5 , sukat = ( 0.02 , 0.33 ) , ratio = ( 0.3 , 3.3 ) , halaga = 0 , sa lugar = Mali ) , ts. ToPILImage ( ) ] )

Ang mga parameter na ginamit sa itaas ' RandomErasing 'transpormer ay ipinaliwanag sa ibaba:

  • p: Ito ay kumakatawan sa posibilidad na ang random na pagpapataas ng operasyon ay makakamit.
  • sukat: Ito ay nagpapahiwatig ng saklaw ng nabura na lugar ng isang input na imahe.
  • ratio: Tinutukoy nito ang aspect ratio ng nabura na rehiyon.
  • halaga: Tinutukoy nito ang pagbubura ng halaga na '0' bilang default. Kung ito ay isang solong integer pagkatapos ay inaalis nito ang lahat ng mga pixel, at kung ito ay isang tuple na mayroong tatlong integer pagkatapos ay inaalis nito ang R, G, at B na mga channel ayon sa pagkakabanggit.
  • sa lugar: Ito ay isang 'boolean' na halaga na ginagawang inplace ang ibinigay na random erasing transformer. Bilang default, ito ay 'false'.

Hakbang 5: Gamitin ang Dictionary Comprehension para Kumuha ng Output na Mga Larawan

Gamitin ang konsepto ng pag-unawa sa diksyunaryo upang kunin ang apat na larawang output:

mga larawan = [ ibahin ang anyo ( larawan ) para sa _ sa saklaw ( 4 ) ]

Hakbang 6: Ipakita ang Apat na Output na Larawan

Panghuli, ipakita ang apat na output na imahe sa tulong ng nakasaad sa ibaba na code block:

fig = plt. pigura ( laki ng figs = ( 7 , 4 ) )

mga hilera , cols = 2 , 2

para sa j sa saklaw ( 0 , lamang ( mga larawan ) ) :

fig. add_subplot ( mga hilera , cols , j+ 1 )

plt. imshow ( mga larawan [ j ] )

plt. xticks ( [ ] )

plt. yticks ( [ ] )

plt. palabas ( )

Ang paglalarawan ng code sa itaas ay ang mga sumusunod:

  • Ilapat ang ' plt.figure() ” paraan para sa pag-plot ng apat na larawan ng tinukoy na lapad at taas.
  • Pagkatapos, tukuyin ang mga partikular na row at column para isaayos ang apat na larawan.
  • Pagkatapos nito, magpasimula ng 'para sa' loop na nalalapat ang ' subplot() ” paraan para tukuyin ang subplot, ang “show()” na paraan para ipakita ang mga imahe, at ang “ plt.xticks() ' pati na rin ang ' plt.yticks() ” upang itakda ang kasalukuyang lokasyon ng tik at mga label ng x at y-axis.
  • Panghuli, gamitin ang ' plt.show() 'paraan upang i-print ang mga imahe sa output:

Tandaan : Maa-access ng mga user ang aming Colab Notebook gamit ang ibinigay link .

Pro-Tip

Isang mahalagang paggamit ng ' Random na Pagbubura ” paraan sa mga proyekto ng PyTorch ay seguridad. Magagamit ito para mag-alis ng mga pixel sa mga sensitibong larawan gaya ng mga naglalaman ng ilang lihim ng kalakalan o ibang bagay na may halaga. Ang tukoy na random na function para sa pagbura na ito ay malalaman lamang ng orihinal na user at ang user lamang ang makakapag-restore ng mga nabura na larawan pabalik sa kanilang orihinal na bersyon.

Tagumpay! Ipinakita namin kung paano gumagana ang random na paraan ng pagbubura sa PyTorch.

Konklusyon

Ang ' Random na Pagbubura ” na paraan sa PyTorch ay gumagana sa pamamagitan ng pag-aalis ng mga random na pixel mula sa isang imahe at paggaya sa isang real-world na senaryo upang mas mahusay na sanayin ang modelo. Gagawin nitong mas dalubhasa ang modelo sa paghawak ng iba't ibang uri ng data upang makagawa ng mga de-kalidad na hinuha mula sa hindi kumpletong data. Inilarawan namin kung paano gamitin ang ' Random na Pagbubura ” paraan sa PyTorch.