Aan de slagGa gratis aan de slag

Schrijf je eigen pooling-operatie

Zoals we eerder hebben gezien, kunnen CNN’s heel veel parameters hebben. Pooling-lagen worden vaak toegevoegd tussen de convolutionele lagen van een neuraal netwerk om hun outputs samen te vatten in compacte vorm en zo het aantal parameters in de volgende laag te verkleinen. Dat helpt als je het netwerk sneller wilt trainen of als je niet genoeg data hebt om een heel groot aantal parameters te leren.

Een pooling-laag kun je beschrijven als een speciaal soort convolutie. Voor elk venster in de input vindt hij de maximale pixelwaarde en geeft alleen die pixel door. In deze oefening schrijf je je eigen max-pooling-operatie, gebaseerd op de code die je eerder gebruikte om een tweedimensionale convolutie-operatie te schrijven.

Deze oefening maakt deel uit van de cursus

Beeldmodellering met Keras

Cursus bekijken

Oefeninstructies

  • Indexeer in de input-array (im) en selecteer het juiste venster.
  • Zoek het maximum in dit venster.
  • Schrijf dit weg naar het juiste element in de output-array (result).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(____)
Code bewerken en uitvoeren