百家汽车网
您的当前位置:首页(神经网络和卷积入门)Pytorch小土堆跟练代码(第8天)

(神经网络和卷积入门)Pytorch小土堆跟练代码(第8天)

来源:百家汽车网

本系列为跟练每集代码,然后进入机器。

在系列中会敲完所有视频中代码,并且在注释详细写出感悟和易错点。

欢迎大家一起交流!

最前面的神经网络和卷积,可以移步我的

池化层

只提取一部分特征,可以大大的加快训练速度

最后输出类似于马赛克的效果

'池化层 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=)
# 此时引入了新的数据集,可以不用了
# 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

因篇幅问题不能全部显示,请点此查看更多更全内容