池化使用
# 自适应平均值池化层
nn.AdaptiveAvgPool2d(output_size=(100,100)) # 输出大小的尺寸指定为100*100
# 平均池化 池化核和池化步长均为2
nn.AvgPool2d(2,stride=2)
# 最大池化
MaxPool2d(kernel_size=3, ceil_mode=True)
池化原理示例
import torch
import torch.nn.functional as F
from torch import nn
from torch.nn import MaxPool2d
x = torch.tensor([[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]], dtype=torch.float32)
# 改变维度 参数:数据矩阵,目标大小矩阵
x1 = torch.reshape(x, (-1, 1, 5, 5))
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
# 池化核大小、默认False=舍弃不足池化核大小的值
self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=True)
def forward(self, input):
output = self.maxpool1(input)
return output
tudui = Tudui()
output = tudui(x1)
print(output)
不舍弃就会获得:9、5、10、6、