哔哩大学的PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】
的P19讲讲述了神经网络的最大池化的使用。
就是减少训练的数据量。举个例子:视频有1080p和720p,输入图像就是一个1080p的视频,网卡的时候可以池化一下变成720p的,可以看而且文件变小了。
池化过程为
代码举例:
import torch
# 输入图像,tensor数据类型
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
dataset = torchvision.datasets.CIFAR10("../data", train=False, download=True, transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, batch_size=64)
# 数据集可以用下边的这个注释掉的手动输入的矩阵,也可以是上边的dataset。
# 下边的矩阵就是图片中的例子。
# input = torch.tensor([[1, 2, 0, 3, 1],
# [0, 1, 2, 3, 1],
# [1, 2, 1, 0, 0],
# [5, 2, 3, 1, 1],
# [2, 1, 0, 1, 1]], dtype=torch.float32)
#
# input = torch.reshape(input, (-1, 1, 5, 5))# -1不知道是啥,一层网络所以1,5*5矩阵
# print(input.shape)
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=True)
def forward(self, input):
output = self.maxpool1(input)
return output
tudui = Tudui()
writer = SummaryWriter("logs_maxpool")
step = 0
for data in dataloader:
imgs, targets = data
writer.add_images("input", imgs, step)
output = tudui(imgs)
writer.add_images("output", output, step)
step = step + 1
writer.close()
# 代码看不懂可以看上几篇文章,都是一样的操作就没写详细的注释
在日志中查看结果如图:
查看日志的方法也是同上几篇文章,用tensorboard:



