ÎncepețiÎncepe gratuit

Scrie-ți propria operație de pooling

Așa cum am văzut, rețelele CNN pot avea un număr foarte mare de parametri. Straturile de pooling sunt adesea adăugate între straturile convoluționale ale unei rețele neuronale pentru a rezuma rezultatele acestora într-un mod compact și pentru a reduce numărul de parametri din stratul următor. Acest lucru poate fi util atunci când vrei să antrenezi rețeaua mai rapid sau când nu ai suficiente date pentru a învăța un număr foarte mare de parametri.

Un strat de pooling poate fi descris ca un tip special de convoluție. Pentru fiecare fereastră din intrare, găsește valoarea maximă a pixelului și transmite mai departe doar acea valoare. În acest exercițiu, vei scrie propria operație de max pooling, pornind de la codul pe care l-ai folosit anterior pentru a implementa o operație de convoluție bidimensională.

Acest exercițiu face parte din cursul

Modelarea imaginilor cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Indexează în matricea de intrare (im) și selectează fereastra corectă.
  • Găsește valoarea maximă din această fereastră.
  • Atribuie această valoare în poziția corespunzătoare din matricea de ieșire (result).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____)
Editează și rulează codul