22 Sequential的使用和搭建小实战
一、Sequential的使用
组合各个层

二、搭建小实战
1.网络结构

- 计算padding

- 需要经历两个线性层

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)
- 原始网络:

- 双击显示完整网络结构:
有输入输出的大小和网络细节


浙公网安备 33010602011771号