Bom dia, aqui eu substituí o MaxPool2d por duas outras funções de pooling disponíveis no PyTorch.
Primeiro, usei o AvgPool2d, para reduzir a informação e calcular a média dos valores presentes em cada janela analisada.
Depois, o AdaptiveMaxPool2d, para ver algo um pouco diferente: em vez de definir diretamente o tamanho do kernel e o stride, eu informei o o tamanho desejado para a saída. No exemplo, eu configurei uma saída de 2 x 2.
porque desse jeito eu comparei diferentes estratégias de subamostragem e pude vizualizar e de certa forma entender como cada tipo de pooling reduz as dimensões espaciais preservando diferentes características do mapa de ativação.
vou colocar aqui o link do meu código: https://github.com/Moquiuti/Redes-Neurais-Convolucionais-Deep-Learning-com-PyTorch/blob/main/Outras_Camadas_Pooling_Alternativos.ipynb