Función torch.nn.AdaptiveMaxPool2d de PyTorch
Manual de referencia de PyTorch torch.nn
torch.nn.AdaptiveMaxPool2dEs el módulo de agrupación máxima adaptativa en PyTorch.
Agrupa la entrada a un tamaño especificado, conservando el valor máximo en lugar del promedio.
Definición de la función
torch.nn.AdaptiveMaxPool2d(output_size, return_indices=False)
Parámetros
output_size: Tamaño de salidareturn_indices: Si se devuelven los índices
Ejemplos de uso
Ejemplo 1: Uso básico
Ejemplo
import torch
import torch.nn as nn
# Agrupación máxima global
gap = nn.AdaptiveMaxPool2d(1)
# Entrada con diferentes tamaños
x1 = torch.randn(1, 64, 32, 32)
x2 = torch.randn(1, 64, 16, 16)
print("32x32 ->", gap(x1).shape)
print("16x16 ->", gap(x2).shape)
import torch.nn as nn
# Agrupación máxima global
gap = nn.AdaptiveMaxPool2d(1)
# Entrada con diferentes tamaños
x1 = torch.randn(1, 64, 32, 32)
x2 = torch.randn(1, 64, 16, 16)
print("32x32 ->", gap(x1).shape)
print("16x16 ->", gap(x2).shape)
Ejemplo 2: Retornar índices
Ejemplo
import torch
import torch.nn as nn
gap = nn.AdaptiveMaxPool2d(1, return_indices=True)
x = torch.randn(1, 64, 8, 8)
output, indices = gap(x)
print(Forma de salida:, output.shape)
print(Forma de los índices:, indices.shape)
print(Valores de los índices:, indices.item())
import torch.nn as nn
gap = nn.AdaptiveMaxPool2d(1, return_indices=True)
x = torch.randn(1, 64, 8, 8)
output, indices = gap(x)
print(Forma de salida:, output.shape)
print(Forma de los índices:, indices.shape)
print(Valores de los índices:, indices.item())
Ejemplo 3: Comparación con AdaptiveAvgPool2d
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)
avgpool = nn.AdaptiveAvgPool2d(1)
maxpool = nn.AdaptiveMaxPool2d(1)
print(Entrada:n, x[0, 0])
print(Agrupación promedio:, avgpool(x).item())
print(Agrupación máxima:, maxpool(x).item())
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)
avgpool = nn.AdaptiveAvgPool2d(1)
maxpool = nn.AdaptiveMaxPool2d(1)
print(Entrada:n, x[0, 0])
print(Agrupación promedio:, avgpool(x).item())
print(Agrupación máxima:, maxpool(x).item())
Casos de uso
- Agrupación máxima global: Extraer las características más significativas
- Agregación de características: Conservar información clave
- Red de clasificación: Sustituir la capa FC
Sugerencia: la agrupación máxima conserva las características más significativas; la agrupación promedio es más suave.
Otras extensiones