Función PyTorch torch.nn.AvgPool2d
Manual de referencia de PyTorch torch.nn
torch.nn.AvgPool2dEs el módulo de agrupación promedio bidimensional en PyTorch.
Calcula el promedio de cada ventana de entrada, y se usa comúnmente para submuestreo y agregación de características.
Definición de la función
torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
Descripción de parámetros
kernel_size: Tamaño de la ventana de agrupaciónstride: Paso (stride), por defecto kernel_sizepadding: Tamaño de relleno (padding)ceil_mode: Si se usa ceil para calcular el tamaño de salida
Ejemplos de uso
Ejemplo 1: Uso básico
Ejemplo
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("Entrada:n", x.squeeze().tolist())
print("nSalida:n", output.squeeze().tolist())
print("Forma:", 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("Entrada:n", x.squeeze().tolist())
print("nSalida:n", output.squeeze().tolist())
print("Forma:", x.shape, "->", output.shape)
Ejemplo 2: Agrupación promedio global
Ejemplo
import torch
import torch.nn as nn
# Agrupación promedio global
gap = nn.AdaptiveAvgPool2d(1)
x = torch.randn(4, 64, 16, 16)
out = gap(x)
print("Entrada:", x.shape)
print("Salida:", out.shape)
print("Número de valores promedio por canal:", out.numel() // 64)
import torch.nn as nn
# Agrupación promedio global
gap = nn.AdaptiveAvgPool2d(1)
x = torch.randn(4, 64, 16, 16)
out = gap(x)
print("Entrada:", x.shape)
print("Salida:", out.shape)
print("Número de valores promedio por canal:", out.numel() // 64)
Ejemplo 3: Comparación con MaxPool
Ejemplo
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("Entrada: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("Entrada:n", x[0, 0])
print("nMaxPool:n", maxpool(x)[0, 0])
print("nAvgPool:n", avgpool(x)[0, 0])
Casos de uso
- Agregación de características: Reducir las dimensiones espaciales
- Agrupación promedio global: Reemplazar la capa totalmente conectada
- Suavizado de característicasReducir el ruido
Otras extensiones