Fonction torch.nn.AvgPool2d de PyTorch

PyTorch torch.nn 参考手册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 pooling
  • stride: stride, par défaut kernel_size
  • padding: taille du padding
  • ceil_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)

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)

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

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

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch

Autres extensions