Sobes.tech
Middle

A cosa serve uno strato di pooling?

sobes.tech AI

Risposta dell'AI

Lo strato di pooling nelle reti neurali viene utilizzato per ridurre la dimensionalità dei dati di input, contribuendo a ridurre il carico computazionale e il numero di parametri del modello. Favorisce anche l'evidenziazione delle caratteristiche più importanti, aumentando la robustezza del modello contro spostamenti e distorsioni dei dati di input.

I tipi più comuni di pooling:

  • Max pooling — seleziona il valore massimo in una regione.
  • Average pooling — calcola il valore medio.

Esempio di max pooling con dimensione della finestra 2x2 e passo 2:

import torch
import torch.nn as nn

input_tensor = torch.tensor([[[[1, 2, 3, 4],
                               [5, 6, 7, 8],
                               [9, 10, 11, 12],
                               [13, 14, 15, 16]]]], dtype=torch.float32)

pool = nn.MaxPool2d(kernel_size=2, stride=2)
output = pool(input_tensor)
print(output)

Il risultato conterrà i massimi di ogni blocco 2x2, riducendo la dimensione da 4x4 a 2x2.