ComeçarComece de graça

Escreva sua própria operação de pooling

Como já vimos antes, as CNNs podem ter muitos parâmetros. Camadas de agrupamento são frequentemente adicionadas entre as camadas convolucionais de uma rede neural para resumir suas saídas de forma condensada e reduzir o número de parâmetros na próxima camada da rede. Isso pode ajudar se a gente quiser treinar a rede mais rápido ou se não tiver dados suficientes pra aprender um monte de parâmetros.

Uma camada de agrupamento pode ser descrita como um tipo específico de convolução. Para cada janela na entrada, ele encontra o valor máximo de pixel e passa só esse pixel. Neste exercício, você vai escrever sua própria operação de max pooling, com base no código que você usou antes para escrever uma operação de convolução bidimensional.

Este exercício faz parte do curso

Modelagem de imagens com Keras

Ver curso

Instruções do exercício

  • Indique o índice na matriz de entrada (im) e escolha a janela certa.
  • Encontre o máximo nesta janela.
  • Aloca isso na entrada certa na matriz de saída (result).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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(____)
Editar e executar o código