Den här bloggen kommer att diskutera hur ' Slumpmässig radering ”-metoden fungerar i PyTorch.
Varför används metoden 'Random Erasing' i PyTorch?
Slumpmässig borttagning av data från bilderna utgör ett problem för utbildningen av bildanalysmodeller eftersom de tvingas anpassa sig till otillräckliga data. Detta förbereder en modell för verkliga uppgifter där fullständiga data inte alltid finns närvarande. Modellen blir mycket bättre på att kunna dra slutsatser från alla möjliga typer av data och lyckas visa resultat. Valet av pixlar för borttagning är slumpmässigt så det finns ingen introduktion av bias och den resulterande bilden används som indata under träning.
Hur fungerar metoden 'Random Erasing' i PyTorch?
Metoden Random Erasing används för att göra en djupinlärningsmodell bättre rustad att hantera riktiga applikationer. Följ stegen nedan för att lära dig hur du använder den i dina PyTorch-projekt för att öka deras datahantering och förbättra slutledningsmöjligheter:
Steg 1: Konfigurera Collaboratory IDE
Google Colab är ett idealiskt val för utveckling av AI-modeller som använder PyTorch-ramverket. Navigera till Collaboratory hemsida och starta en ' Ny anteckningsbok ”:
Steg 2: Importera de nödvändiga biblioteken
Använd ' !pip ”-paketinstallationsprogram tillhandahållet av Python för att installera bibliotek och använda ” importera ” kommando för att importera dem till projektet:
importera facklaimportera fackelvision. omvandlar som ts
från PIL importera Bild
importera matplotlib. pyplot som plt
Beskrivningen av given kod är som följer:
- Importera ' fackla ”-bibliotek med hjälp av ” importera ” kommando.
- den ' torchvision.transformers ”-paketet innehåller transformationerna för Random Erasing.
- ' PIL ” är python-bildbiblioteket och det innehåller funktionaliteten för att bearbeta bilder.
- den ' matplotlib.pyplot ”-biblioteket används för att visualisera de ursprungliga och transformerade bilderna:
Steg 3: Ladda upp ingångsbilden
Ladda upp bilden i avsnittet Filer:
Ladda sedan in inmatningsbilden med ' öppen() '-metoden för 'Bild'-modulen:
bild = Bild. öppen ( 'a2.jpeg' )Steg 4: Ange Transform to Perform Transformations
Definiera nu en ' RandomErasing ” transformator som kommer att transformera bilden genom att välja dess slumpmässiga rektangulära område och radera dess pixlar. Konvertera dessutom ingångsbilden till ficklampssensorn med hjälp av ' ToTensor() ”-metoden om det är en PIL-bild och sedan konvertera den tillbaka till PIL-bilden via ” ToPILImage() ”:
omvandla = ts. Komponera ( [ ts. TillTensor ( ) , ts. RandomErasing ( sid = 0,5 , skala = ( 0,02 , 0,33 ) , förhållande = ( 0,3 , 3.3 ) , värde = 0 , på plats = Falsk ) , ts. TOPILIbild ( ) ] )Parametrarna som används i ovanstående ' RandomErasing ' transformator förklaras nedan:
- p: Det representerar sannolikheten att den slumpmässiga höjningsoperationen kommer att uppnås.
- skala: Den indikerar räckvidden för det raderade området i en inmatad bild.
- förhållande: Det anger bildförhållandet för det raderade området.
- värde: Den anger raderingsvärdet som är '0' som standard. Om det är ett enda heltal tar det bort alla pixlar, och om det är en tuppel med tre heltal så tar det bort R-, G- och B-kanalerna.
- på plats: Det är ett 'booleskt' värde som gör den givna slumpmässiga raderingstransformatorn på plats. Som standard är det 'falskt'.
Steg 5: Använd ordboksförståelse för att ta utdatabilder
Använd ordboksförståelsekonceptet för att ta de fyra utdatabilderna:
bilder = [ omvandla ( bild ) för _ i räckvidd ( 4 ) ]Steg 6: Visa upp de fyra utdatabilderna
Till sist, visa de fyra utdatabilderna med hjälp av det nedan angivna kodblocket:
fikon = plt. figur ( fikonstorlek = ( 7 , 4 ) )rader , cols = 2 , 2
för j i räckvidd ( 0 , endast ( bilder ) ) :
fikon. add_subplot ( rader , cols , j+ 1 )
plt. imshow ( bilder [ j ] )
plt. xticks ( [ ] )
plt. yticks ( [ ] )
plt. show ( )
Ovanstående kodbeskrivning är som följer:
- Använd ' plt.figure() ” metod för att plotta de fyra bilderna med specificerad bredd och höjd.
- Ange sedan specifika rader och kolumner för att justera de fyra bilderna.
- Efter det initialiseras en 'för'-loop som tillämpar ' subplot() ”-metoden för att definiera subplotten, ”show()”-metoden för att visa bilderna och ” plt.xticks() ' såväl som ' plt.yticks() ” för att ställa in aktuell bockplats och etiketter för x- och y-axeln.
- Använd slutligen ' plt.show() ”-metod för att skriva ut bilderna till utdata:
Notera : Användare kan komma åt vår Colab Notebook med hjälp av det medföljande länk .
Proffstips
En viktig användning av ' Slumpmässig radering ”-metoden i PyTorch-projekt är säkerhet. Den kan användas för att ta bort pixlar från känsliga bilder som de som innehåller vissa affärshemligheter eller något annat av värde. Den specifika slumpmässiga funktionen för denna radering skulle endast vara känd för den ursprungliga användaren och endast användaren skulle kunna återställa de raderade bilderna till sin ursprungliga version.
Framgång! Vi har visat hur metoden för slumpmässig radering fungerar i PyTorch.
Slutsats
den ' Slumpmässig radering ”-metoden i PyTorch fungerar genom att ta bort slumpmässiga pixlar från en bild och efterlikna ett verkligt scenario för att bättre träna modellen. Detta kommer att göra modellen mer skicklig på att hantera olika typer av data för att dra kvalitetsslutsatser från ofullständiga data. Vi har illustrerat hur man använder ' Slumpmässig radering ”-metoden i PyTorch.