python3.11
import torch
import torch.nn as nn
input = torch.Tensor(
[[[1,2,2,4],
[5,3,1,7],
[1,2,1,3],
[1,5,2,1]]]
)
print(input)
input = input.view(1,1,4,4)
print(input)
maxpool = nn.MaxPool2d(kernel_size = 2, stride = 2)
output = maxpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)
maxpool = nn.MaxPool2d(kernel_size =(2,2), stride = 2)
output = maxpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)
avgpool = nn.AvgPool2d(kernel_size=4, stride=4)
output = avgpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)
avgpool = nn.AvgPool2d(kernel_size=(4,4), stride=4)
output = avgpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)
adaptive_maxpool = nn.AdaptiveMaxPool2d(output_size=2)
output = adaptive_maxpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)
adaptive_avgpool = nn.AdaptiveAvgPool2d(output_size=2)
output = adaptive_avgpool(input)
print(f'{input.shape} -> {output.shape}')
print(output)