Skriv din egen poolningsoperation
Som vi har sett tidigare kan CNN:er ha många parametrar. Poolningslager läggs ofta till mellan de konvolutionella lagren i ett neuralt nätverk för att sammanfatta deras utdata på ett kompakt sätt och minska antalet parametrar i nästföljande lager. Det kan vara till nytta om du vill träna nätverket snabbare, eller om du inte har tillräckligt med data för att lära in ett mycket stort antal parametrar.
Ett poolningslager kan beskrivas som en särskild typ av konvolution. För varje fönster i indata hittar det det maximala pixelvärdet och skickar bara den pixeln vidare. I den här övningen ska du skriva din egen max-poolningsoperation, med utgångspunkt i den kod du tidigare använde för att skriva en tvådimensionell konvolutionsoperation.
Den här övningen är en del av kursen
Bildmodellering med Keras
Övningsinstruktioner
- Indexera in i indatamatrisen (
im) och välj rätt fönster. - Hitta det maximala värdet i det här fönstret.
- Tilldela det här värdet till rätt position i utdatamatrisen (
result).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))
# Pooling operation
for ii in range(result.shape[0]):
for jj in range(result.shape[1]):
result[ii, jj] = np.max(____)