池化层会大大减小数据训练量
最大池化我们以2的为例MaxPool2d
主要使用的参数是:
kernel_size:是池化核的大小,是在卷积过程中移动的格数
Ceil_model:当值为True的时候,数值个数不足保留,为False的时候数值个数不足则不保留
例如:一个5*5的输入图象,和3*3的池化核
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 |
输入图象(5*5)
池化核(3x3), kernel_size=3
2 | 3 |
5 | 1 |
Ceil_model=True
2 |
Ceil_model=False
import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#准备数据集
dataset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True,
transform= torchvision.transforms.ToTensor())
#加载数据集
dataloader = DataLoader(dataset, batch_size=64, shuffle=True)
#构建简单的网络神经
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
self.maxpool1 = nn.MaxPool2d(kernel_size=3, ceil_mode=False)
def forward(self, input):
output = self.maxpool1(input)
return output
tudui = Tudui()
print(tudui)
writer = SummaryWriter('logs_maxPool')
step = 0
#从数据集中取数据
for data in dataloader:
print(data)
imgs, targets = data
writer.add_images("input",imgs,step)
output = tudui(imgs)
writer.add_images("output",output,step)
step += 1
writer.close()
结果为: