pytorch学习(五)---torch.nn模块

        本篇自学笔记来自于b站《PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】》,Up主讲的非常通俗易懂,文章下方有视频连接,如有需要可移步up主讲解视频,如有侵权,实非故意,深表歉意,请与我联系,删除相关内容!

        本节介绍一些torch.nn模块的常用层,包括卷积层、池化层以及激活函数等。

        首先是卷积层:torch.nn.Conv2d():主要参数有:

         in_channel:输入的通道数;out_channel:输出的通道数;kernek_size:卷积核的边长stride:步长,卷积核每次移动的长度,padding:是否需要填充

        卷积的计算,如图所示,为将卷积核翻转180度,然后对应相乘:

pytorch学习(五)---torch.nn模块_第1张图片

 

        最大池化层:torch.nn.MaxPool2d():参数为kernel_size。在进行最大池化的过程时,卷积核在原图像上移动,输出的是这一块的最大值。不用进行和卷积类似的计算。

        激活函数:Relu和Sigmoid,依据不同的激活函数有不同的计算方式。

        线性层:torch.nn.Linear():参数有in_feature和out_feature。一个形如64*4*4的图片想要进入linear层,要先将其展平,即in_feature为64*4*4=1024,out_feature则为想要的输出。

下面给出详细代码:

import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

dataset = torchvision.datasets.CIFAR10(root='dataset',train = False,transform=transforms.ToTensor(),download=True)
data_load = DataLoader(dataset,batch_size=64,drop_last=True)

class Model(nn.Module):

    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(in_channels=3,out_channels=5,kernel_size=3,stride=1,padding=0)
        self.maxpool1 = nn.MaxPool2d(kernel_size=3)
        self.relu = nn.ReLU()
        self.sigmoid = nn.Sigmoid()
        self.linear = nn.Linear(in_features=196608,out_features=10)

    def forward(self,x):
        #output = self.conv1(x)
        #output = self.maxpool1(x)
        #output = self.relu(x)
        #output = self.sigmoid(x)
        output = self.linear(x)
        return output

model = Model()
# writer = SummaryWriter("logs")
# step = 1
for data in data_load:
    imgs,targets = data
    print(imgs.shape)
    output = torch.flatten(imgs)#展平数据
    print(output.shape)
    output = model(output)
    print(output.shape)

    #writer.add_images("input",imgs,step)
    #卷积输出的时候需要进行reshape,最大池化则不需要,因为最大池化后通道数不变
    #output = torch.reshape(output,[-1,3,30,30])
    #print(output.shape)
   # writer.add_images("output",output,step)
   # step += 1

#writer.close()

附视频地址:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili

你可能感兴趣的:(pytorch,学习笔记,python,深度学习,pytorch)