22 Sequential的使用和搭建小实战

一、Sequential的使用

组合各个层

image

二、搭建小实战

1.网络结构

image

  • 计算padding

image

  • 需要经历两个线性层

image

2.代码

点击查看代码
import torch
from torch import nn
from torch.nn import Conv2d,MaxPool2d,Flatten,Linear,Sequential
from torch.utils.tensorboard import SummaryWriter

# 定义网络结构
class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        # self.conv1=Conv2d(3,32,5,padding=2) #可以每一层都用这种方式定义,下面再用这种方式调用
        self.model1=Sequential( #使用sequential
            Conv2d(3,32,5,padding=2), #in_channel 3;out_channel 32;kernel 5;padding需要计算(一般不会太大)
            MaxPool2d(2), #kennel_Size=2
            Conv2d(32,32,5,padding=2),
            MaxPool2d(2),
            Conv2d(32,64,5,padding=2),
            MaxPool2d(2),
            Flatten(), #展平 :可以把后面的删掉 获得输出的大小
            Linear(1024,64),#看上一层的大小 ,可以看到是1024
            Linear(64,10) #输入大小 64 输出大小 10
        )

    def forward(self,x):
        x=self.model1(x)
        return x
# 声明网络
tudui=Tudui()
print(tudui)

# 输入-网络-输出
output=tudui(input)
print(output.shape)

#输出可视化的网络结构
writer=SummaryWriter("./logs_22")
writer.add_graph(tudui,input)
writer.close()
  • 运行代码

tensorboard --logdir=logs_22 --host=127.0.0.1

3.网络的可视化图形结构

writer.add_graph(tudui,input)

  • 原始网络:

image

  • 双击显示完整网络结构:

有输入输出的大小和网络细节

image

posted @ 2022-05-22 22:55  Trouvaille_fighting  阅读(207)  评论(0)    收藏  举报