神经网络搭建(1)----nn.Sequential

神经网络模型构建

采用CIFAR10中的数据,并对其进行简单的分类。以下图为例

输入:3通道,32×32 ( 经过一个5×5的卷积)
→ 变成32通道,32×32的图像 (经过2×2的最大池化)
→ 变成32通道,16×16的图像 ( 经过一个5×5的卷积)
→ 变成32通道,16×16的图像 (经过2×2的最大池化)
→ 变成32通道,8×8的图像 ( 经过一个5×5的卷积)
→ 变成64通道,8×8的图像(经过2×2的最大池化)
→ 变成64通道,4×4的图像
→ 把图像展平(Flatten)(变成64通道,1×1024 (64×4×4) 的图像)
→先通过一个线性层Linear(in_features=64 * 4 * 4, out_features=64)
→再经过一个线性层Linear(64, 10)→ 得到最终图像

以上就是一个神经网络模型的构建

神经网络中的参数设计及计算

卷积层的参数设计(以第一个卷积层conv2为例)

  • 输入图像为3通道,输出图像为32通道,故:in_channels=3,  out_channels=32
  • 卷积核尺寸为 kernel_size=5  (5*5)

  • 图像经过卷积层conv2前后的尺寸均为32×32,根据公式:

可得:
 

即:

若stride[0]或stride[1]设置为2,那么上面的padding也会随之扩展为-个很大的数,这很不合理。所以这里设置: stride[0] = stride[1] = 1,由此可得: padding[0] = padding[1]= 2

其余卷积层的参数设计及计算方法均同上

最大池化操作的参数设计(以第一个池化操作maxpool为例)

根据计算神经网络 torch.nn---Pooling layers(nn.MaxPool2d)-CSDN博客

可以得到卷积核尺寸为 kernel_size=2

其他参数为默认值

线性层的参数设计

  • 通过三次卷积和最大池化操作后,图像尺寸变为64通道4×4。之后使用Flatten()函数将图像展成一列,此时图像尺寸变为:1×(64×4×4),即1×1024

  • 因此,之后通过第一个线性层,(in_features=64 * 4 * 4, out_features=64)

  • 第二个线性层,(in_features=64 , out_features=10)

程序代码

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Linear, Sequential, Flatten
from torch.utils.tensorboard import SummaryWriter

class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        self.model = Sequential(
            Conv2d(3, 32, kernel_size=5, padding=2),
            MaxPool2d(kernel_size=2),
            Conv2d(32, 32, kernel_size=5, padding=2),
            MaxPool2d(kernel_size=2),
            Conv2d(32, 64, kernel_size=5, padding=2),
            MaxPool2d(kernel_size=2),
            Flatten(),
            Linear(in_features=64 * 4 * 4, out_features=64),
            Linear(64, 10)
        )

    def forward(self, x):
        x = self.model(x)
        return x

tudui = Tudui()
print(tudui)

input = torch.ones(64, 3, 32, 32)
output = tudui(input)
print(output.shape)

# 可视化神经网络 
writer = SummaryWriter('logs')
writer.add_graph(tudui, input)
writer.close()

这样就可以清晰地看到神经网络的相关参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685271.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

英伟达再创历史,市值超越苹果,跃居全球第二大上市公司

进入2024年,英伟达股价依然突飞猛进。 今天凌晨,英伟达凭借其在AI领域强劲的创新能力和市场势头,达成了历史性的里程碑——市值首次突破3万亿美元,成功超越苹果,成为全球市值第二大上市公司。 排名仅次于微软。 英伟达…

从零开始实现自己的串口调试助手(7) -隐藏面板/刷新串口号/实现多文本

隐藏/拓展面板/历史: ui界面操作: 选中隐藏面板按钮,勾选checkable 创建bool类型的槽函数 隐藏/拓展面板槽函数: void Widget::on_btnHideTable_clicked(bool checked) {if(checked){ui->btnHideTable->setText("拓展面板");ui->groupBoxTexts-…

Kotlin 网络请求小例子(Ktor)

文章目录 导入依赖创建 Http 客户端 其实还是借着 Ktor 学一学 Kotlin 如何导入依赖,这应该是我们 Kotlin 基础专栏的最后一期了。 Ktor 是 Kotlin 官方的一个网络请求库,它具有优秀且精炼的 API,并且是跨平台的。 本教程参考自 Ktor 文档 …

f1c100s 荔枝派 系统移植

一。交叉编译环境配置 1.1下载交叉工具链:https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/ 1.2解压安装 在home目录下新建 工程目录:mkdir f1c100s_project 将windows下的gcc-linaro-7.2.1-2017.11-x86…

AI大模型日报#0606:智谱AI开源GLM-4-9B、Pika再融5.8亿

导读:AI大模型日报,爬虫LLM自动生成,一文览尽每日AI大模型要点资讯!目前采用“文心一言”(ERNIE 4.0)、“零一万物”(Yi-Large)生成了今日要点以及每条资讯的摘要。欢迎阅读&#xf…

Ubuntu虚拟机安装(基于Vmware17)

Ubuntu虚拟机安装(基于Vmware17) Ubuntu和CentOS是两种流行的Linux发行版,Ubuntu默认安装了图形化桌面环境,对于新手来学习相对来说较为友好,能够满足日常的学习和使用。CentOS则通常被用于服务器环境,常运…

【再探】Java—Java 沙箱机制与类加载器

沙箱(Sandbox)机制是将Java程序限定在JVM特定的运行范围内,并严格限制代码对本地系统资源的访问,以保证代码的有效隔离,防止对本地系统造成破坏。 1 安全模型 类在加载过程中,类加载器会为类设置初始的安…

天润融通助力浪鲸卫浴,智能化革新引领客户服务新高度

头部家装品牌如何用优质服务抓住客户? 每年初春,万物复苏的同时,家装市场也正式进入旺季。 因为春天气温回升,潮气逐渐散去,开始进入最适合施工的季节,木材不易变形、油漆不易起皮,再加上春季…

【iOS】——Runtime学习

文章目录 一、Runtime介绍二、Runtime消息传递三、实例对象、类对象、元类对象四、isa_t结构体的具体实现五、cache_t的具体实现六、class_data_bits_t的具体实现七、Runtime消息转发动态方法解析备用接收者完整消息转发 一、Runtime介绍 iOS的Runtime,通常称为Obj…

人形机器人:工业领域的得力助手

人行机器人近2年显示出强劲的增长势头,根据最新数据预测,到2026年,中国人形机器人产业规模将突破200亿元,这一数字预示着人形机器人在未来社会中将扮演更加重要的角色。 在工业领域,由于工业环境复杂多变,对…

音视频直播(一)

协议基础篇 直播协议基础推流与拉流推流拉流 直播传输协议RTMP传输协议 && HTTP-FLV协议为什么RTMP做推流,反而很少做拉流?HTTP-FLV协议 RTSP协议HLS协议SRT协议 WebRTC协议应用于直播 直播协议基础 从网络上搜寻到的有关推流与拉流的示意图 从…

STM32F103VE和STM32F407VE的引脚布局

STM32F103VE vs STM32F407VE 引脚对比表 引脚 STM32F103VE STM32F407VE 备注 1 VSS VSS 地 2 VDD VDD 电源 3 VSSA VSSA 模拟地 4 VDDA VDDA 模拟电源 5 OSC_IN OSC_IN 外部时钟输入 6 OSC_OUT OSC_OUT 外部时钟输出 7 NRST NRST 复位 8 PC13 (GPIO) PC13 (GPIO) GPIO 9 PC14 (…

【MySQL】sql语句之表操作(上)

序言 在上一篇的数据库操作的内容中,学习了两种属性和常用的七种操作,学习是循序渐进的,库的操作学完了,就要开始学习表的操作了,而表可与数据强相关,比如DDL,即数据定义语言,DML&am…

JVMの静、动态绑定异常捕获JIT即时编译

在说明静态绑定和动态绑定之前,我们首先要了解在字节码指令的层面,JVM是如何调用方法的: 例如我有以下的代码,很简单就是在main方法中调用了另一个静态方法: public class MethodTest {public static void main(Strin…

小程序 UI 风格美不胜收

小程序 UI 风格美不胜收 小程序 UI 风格美不胜收

论文阅读《SELECTIVE DOMAIN-INVARIANT FEATURE FOR GENERALIZABLE DEEPFAKEDETECTION》

作者:Yingxin Lai、 Guoqing Yang1、Yifan He2、Zhiming Luo、Shaozi Li 期刊:ICASSP-2024 目的:解决泛化性的问题,提出了3个模块 论文整体的架构图:(挑选域特征不变,减少对图像内容或者风格…

完全平方数

完全平方数 完全平方数动态规划 完全平方数 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是…

289M→259M得物包体积治理实践

一、前言 iOS应用的包体积大小是衡量得物性能的重要指标,过大包体积会降低用户对应用的下载意愿,还会增加用户的下载等待时间以及用户手机的存储空间,本文重点介绍在包体积治理中的新思路以及原理与实践。 二、原理介绍 Macho产物测试 我…

想要修改word文档怎么移除编辑权限?学会这两个方法,轻松搞定

日常办公和学习中,Word文档是我们不可或缺的工具。然而,有时我们可能会遇到一些设置了编辑权限的文档,这可能是由于文档的创建者希望控制文档的修改和传播,或者是因为文档在某些共享或协作环境中被设置为只读模式。在这种情况下&a…

网工内推 | 网络运维工程师,H3CIE认证优先,13薪,享股票期权

01 畅读 🔷招聘岗位:高级网络运维工程师 🔷职责描述: 1.负责线上业务网络技术运维工作,保障并优化线上网络质量; 2.规划并构建公司线上业务网络架构; 3.规划线上业务网络质量评估与监控体系&…