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])