Pytorch基础(五)—— 池化层
生活随笔
收集整理的這篇文章主要介紹了
Pytorch基础(五)—— 池化层
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、概念
池化就是把數(shù)據(jù)壓縮的過(guò)程,屬于下采樣的一種方法,可以顯著降低神經(jīng)網(wǎng)絡(luò)計(jì)算復(fù)雜度,減少訓(xùn)練中的過(guò)擬合,同時(shí)可以使數(shù)據(jù)具有一定的不變性。
池化從方法上來(lái)講可以分為average Pooling、max Pooling、Overlapping Pooling、Spatial Pyramid Pooling,其中max Pooling是最常見(jiàn)的池化方法,Overlapping Pooling值得注意的是filter的size小于stride,Spatial Pyramid Pooling(空間金字塔池化)可以將不同維度的卷積特征轉(zhuǎn)化到同一個(gè)維度,可以減少一些由于croping引起的數(shù)據(jù)損失。
下圖是用最大池化的方法對(duì)4 * 4的矩陣進(jìn)行處理,filter為2 * 2,stride等于2,最終得到2*2的矩陣,矩陣中的值為遍歷矩陣的最大值。
二、Pytorch示例
還是用CIFAR10數(shù)據(jù)集,池化方法采用最大池化,filter為3*3。
dataset = torchvision.datasets.CIFAR10("../dataset", train=False, download=True, transform=torchvision.transforms.ToTensor())dataloader = DataLoader(dataset, batch_size=64)class Wzh(nn.Module):def __init__(self):super(Wzh, self).__init__()self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=True)def forward(self, input):output = self.maxpool1(input)return outputwzh = Wzh() w= SummaryWriter("MaxPool") i = 0for data in dataloader:imgs, targets = data output1 = wzh(imgs)w.add_images("input", imgs, i)w.add_images("output", output1, i)i= i+ 1w.close()結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的Pytorch基础(五)—— 池化层的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 英语音标和Unicode
- 下一篇: 在PADS中如何导出PCB封装库