当前位置: 首页 > news >正文

学习pytorch13 神经网络-搭建小实战Sequential的使用

神经网络-搭建小实战&Sequential的使用

    • 官网
    • 模型结构
    • 根据模型结构和数据的输入shape,计算用在模型中的超参数
    • code
    • running log
    • 网络结构可视化

B站小土堆pytorch视频学习

官网

https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html#torch.nn.Sequential

sequential 将模型结构组合起来 以逗号分割,按顺序执行,和compose使用方式类似。
在这里插入图片描述

模型结构

在这里插入图片描述

根据模型结构和数据的输入shape,计算用在模型中的超参数

在这里插入图片描述

箭头指向部分还需要一层flatten层,展开输入shape为一维
在这里插入图片描述

code

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriterclass MySeq(nn.Module):def __init__(self):super(MySeq, self).__init__()self.conv1 = Conv2d(3, 32, kernel_size=5, stride=1, padding=2)self.maxp1 = MaxPool2d(2)self.conv2 = Conv2d(32, 32, kernel_size=5, stride=1, padding=2)self.maxp2 = MaxPool2d(2)self.conv3 = Conv2d(32, 64, kernel_size=5, stride=1, padding=2)self.maxp3 = MaxPool2d(2)self.flatten1 = Flatten()self.linear1 = Linear(1024, 64)self.linear2 = Linear(64, 10)def forward(self, x):x = self.conv1(x)x = self.maxp1(x)x = self.conv2(x)x = self.maxp2(x)x = self.conv3(x)x = self.maxp3(x)x = self.flatten1(x)x = self.linear1(x)x = self.linear2(x)return xclass MySeq2(nn.Module):def __init__(self):super(MySeq2, self).__init__()self.model1 = Sequential(Conv2d(3, 32, kernel_size=5, stride=1, padding=2),MaxPool2d(2),Conv2d(32, 32, kernel_size=5, stride=1, padding=2),MaxPool2d(2),Conv2d(32, 64, kernel_size=5, stride=1, padding=2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x = self.model1(x)return xmyseq = MySeq()
input = torch.ones(64, 3, 32, 32)
print(myseq)
print(input.shape)
output = myseq(input)
print(output.shape)myseq2 = MySeq2()
print(myseq2)
output2 = myseq2(input)
print(output2.shape)wirter = SummaryWriter('logs')
wirter.add_graph(myseq, input)
wirter.add_graph(myseq2, input)

running log

MySeq((conv1): Conv2d(3, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(maxp1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(conv2): Conv2d(32, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(maxp2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(conv3): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(maxp3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(flatten1): Flatten(start_dim=1, end_dim=-1)(linear1): Linear(in_features=1024, out_features=64, bias=True)(linear2): Linear(in_features=64, out_features=10, bias=True)
)
torch.Size([64, 3, 32, 32])
torch.Size([64, 10])
MySeq2((model1): Sequential((0): Conv2d(3, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(2): Conv2d(32, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(4): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))(5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(6): Flatten(start_dim=1, end_dim=-1)(7): Linear(in_features=1024, out_features=64, bias=True)(8): Linear(in_features=64, out_features=10, bias=True))
)
torch.Size([64, 10])

网络结构可视化

from torch.utils.tensorboard import SummaryWriter
wirter = SummaryWriter('logs')
wirter.add_graph(myseq, input)
tensorboard --logdir=logs

tensorboard 展示图文件, 双击每层网络,可查看层定义细节
在这里插入图片描述

http://www.lryc.cn/news/194123.html

相关文章:

  • TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
  • 【Python、Qt】使用QItemDelegate实现单元格的富文本显示+复选框功能
  • 【JVM】JVM类加载机制
  • 【面试经典150 | 区间】汇总区间
  • 主流接口测试框架对比
  • LeetCode 150.逆波兰表达式求值
  • 华为---企业WLAN组网基本配置示例---AC+AP组网
  • 循环结构的运用
  • 深度强化学习第 1 章 机器学习基础
  • 第一章 STM32 CubeMX (CAN通信发送)基础篇
  • 原子性操作
  • 论文阅读:Segment Any Point Cloud Sequences by Distilling Vision Foundation Models
  • Netty 入门 — 亘古不变的Hello World
  • idea插件开发javax.net.ssl.SSLException: No PSK available. Unable to resume.
  • Selenium的WebDriver操作页面的超时或者元素重叠引起的ElementClickInterceptedException
  • oracle数据库的缓存设置
  • 算法通关村第一关-链表青铜挑战笔记
  • ✔ ★【备战实习(面经+项目+算法)】 10.15学习时间表
  • pytorch 训练时raise EOFError EOFError
  • node.js+NPM包管理器+Webpack打包工具+前端项目搭建
  • PCL点云处理之基于FPFH特征的全局配准流程具体实现(二百二十一)
  • ai_drive67_基于不确定性的多视图决策融合
  • Docker逃逸---procfs文件挂载
  • [Python小项目] 从桌面壁纸到AI绘画
  • 【Docker 内核详解】namespace 资源隔离(五):User namespaces
  • 网络原理必知会
  • ELK 日志分析系统介绍与部署
  • Android 内存治理之线程
  • 三、K8S之ReplicaSet
  • 【基础篇】四、本地部署Flink