Sobes.tech
Junior — Senior

Cos'è una convoluzione 1x1 e a cosa serve?

sobes.tech AI

Risposta dell'AI

La convoluzione 1x1 è un'operazione di convoluzione con un kernel di dimensione 1 per 1 pixel. Viene applicata nelle reti neurali convoluzionali per modificare il numero di canali (profondità) del tensore di input senza modificare le dimensioni spaziali (larghezza e altezza).

Principali applicazioni della convoluzione 1x1:

  • Riduzione o aumento della dimensionalità dei canali, aiutando a ridurre il numero di parametri e il carico computazionale.
  • Introduzione di non linearità tra gli strati tramite funzioni di attivazione dopo la convoluzione 1x1.
  • Mischiare le informazioni tra i canali, migliorando la rappresentazione delle caratteristiche.

Esempio in PyTorch:

import torch
import torch.nn as nn

conv1x1 = nn.Conv2d(in_channels=64, out_channels=128, kernel_size=1)
input_tensor = torch.randn(1, 64, 32, 32)  # batch_size=1, 64 canali, 32x32
output = conv1x1(input_tensor)
print(output.shape)  # torch.Size([1, 128, 32, 32])