Fonction torch.nn.AvgPool2d de PyTorch
Manuel de référence torch.nn de PyTorch
torch.nn.AvgPool2dIl s'agit d'un module de pooling moyen 2D dans PyTorch.
Il calcule la moyenne pour chaque fenêtre de l'entrée, couramment utilisé pour le sous-échantillonnage et l'agrégation de caractéristiques.
Définition de fonction
torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
Description du paramètre
kernel_size: taille de la fenêtre de poolingstride: stride, par défaut kernel_sizepadding: taille du paddingceil_mode: indique s'il faut utiliser ceil pour calculer la taille de sortie
Exemples d'utilisation
Exemple 1 : Utilisation de base
Exemple
import torch
import torch.nn as nn
pool = nn.AvgPool2d(kernel_size=2, stride=2)
x = torch.randn(1, 1, 4, 4)
output = pool(x)
print("Entrée :n", x.squeeze().tolist())
print("nSortie :n", output.squeeze().tolist())
print("Forme :", x.shape, "->", output.shape)
import torch.nn as nn
pool = nn.AvgPool2d(kernel_size=2, stride=2)
x = torch.randn(1, 1, 4, 4)
output = pool(x)
print("Entrée :n", x.squeeze().tolist())
print("nSortie :n", output.squeeze().tolist())
print("Forme :", x.shape, "->", output.shape)
Exemple 2 : Pooling moyen global
Exemple
import torch
import torch.nn as nn
# Pooling moyen global
gap = nn.AdaptiveAvgPool2d(1)
x = torch.randn(4, 64, 16, 16)
out = gap(x)
print("Entrée :", x.shape)
print("Sortie :", out.shape)
print("Nombre de moyennes par canal :", out.numel() // 64)
import torch.nn as nn
# Pooling moyen global
gap = nn.AdaptiveAvgPool2d(1)
x = torch.randn(4, 64, 16, 16)
out = gap(x)
print("Entrée :", x.shape)
print("Sortie :", out.shape)
print("Nombre de moyennes par canal :", out.numel() // 64)
Exemple 3 : Comparaison avec MaxPool
Exemple
import torch
import torch.nn as nn
x = torch.tensor([[[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]]], dtype=torch.float32)
maxpool = nn.MaxPool2d(2, 2)
avgpool = nn.AvgPool2d(2, 2)
print("Entrée :n", x[0, 0])
print("nMaxPool:n", maxpool(x)[0, 0])
print("nAvgPool:n", avgpool(x)[0, 0])
import torch.nn as nn
x = torch.tensor([[[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]]], dtype=torch.float32)
maxpool = nn.MaxPool2d(2, 2)
avgpool = nn.AvgPool2d(2, 2)
print("Entrée :n", x[0, 0])
print("nMaxPool:n", maxpool(x)[0, 0])
print("nAvgPool:n", avgpool(x)[0, 0])
Cas d'utilisation
- Agrégation de caractéristiques: Réduire les dimensions spatiales
- Agrégation moyenne globale: Remplacer les couches entièrement connectées
- Lisser les caractéristiquesRéduire le bruit
Autres extensions