在系列中会敲完所有视频中代码,并且在注释详细写出感悟和易错点。
欢迎大家一起交流!
最前面的神经网络和卷积,可以移步我的另一个帖子
池化层
只提取一部分特征,可以大大的加快训练速度
最后输出类似于马赛克的效果
'池化层 nn.MaxPool2d'
import torch
import torchvision.datasets
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
'''
kernel_size , 也是核
stride和步长一样,但是它的步长不是默认为1,是kernel_size
dilation , 空洞卷积,一般不设置
return_ , 一般不用
ceil_mode , true为ceil,floor向下取整,不允许有出界的部分;ceil向上取整,可以出界(地板和天花板)
'''
'这里有个shape,是可以写论文看的。是池化层的公式'
'目的是维持数据的维度,然后让特征的数据量减少,来增加训练的速度。比如说1080p变成360p'
dataset = torchvision.datasets.CIFAR10("data",train=False,download=True,transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset,batch_size=64)
# 此时引入了新的数据集,可以不用了
# 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)) #这里也得变成四维张量
#
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 #到这里神经网络就建完了。初始化和forward
tudui = Tudui()
# output = tudui(input)
# print(output)
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
标签:卷积,import,self,torch,step,Pytorch,output,input,跟练
From: https://blog.csdn.net/2301_80060871/article/details/143261565