Escribe tu propia operación de agrupación
Como hemos visto anteriormente, las CNN pueden tener muchos parámetros. Las capas de agrupación se añaden a menudo entre las capas convolucionales de una red neuronal para resumir sus resultados de forma condensada y reducir el número de parámetros en la siguiente capa de la red. Esto puede sernos útil si queremos entrenar la red más rápidamente o si no disponemos de datos suficientes para aprender un gran número de parámetros.
Una capa de agrupamiento puede describirse como un tipo particular de convolución. Para cada ventana de la entrada, encuentra el valor máximo de píxeles y solo pasa este píxel. En este ejercicio, escribirás tu propia operación de agrupamiento máximo, basándote en el código que utilizaste anteriormente para escribir una operación de convolución bidimensional.
Este ejercicio forma parte del curso
Modelado de imágenes con Keras
Instrucciones del ejercicio
- Indexa en el arreglo de entrada (
im
) y selecciona la ventana correcta. - Encuentra el máximo en esta ventana.
- Asigna esto a la entrada correcta en el arreglo de salida (
result
).
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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(____)