神经网络搭建(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 SummaryWriterclass 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 xtudui = 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()

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux虚拟机免密登录配置

1、假设A服务器要免密登录B服务器 2、在A服务器上执行命令: cd /root/.ssh/ ssh-keygen -t rsa #这里会生成两个文件 一个是id_rsa私钥和公钥rsa.pub2、我们把公钥的内容复制粘贴到B服务器的/root/.ssh/authorized_keys文件下 #在A服务器上执行命令记录内容 cat …

ArkTs-TaskPool和Worker的使用

TaskPool和Worker的区别 实现TaskPoolWorker内存模型线程间隔离,内存不共享。线程间隔离,内存不共享。参数传递机制 采用标准的结构化克隆算法(Structured Clone)进行序列化、反序列化,完成参数传递。 支持ArrayBuffe…

python调用excel的demo

在本地安装Pycharm之后,新建工程,在main.py中键入如下代码,即可实现Python调用excel: import pandas as pd sheet pd.read_excel(test.xlsx) data sheet.loc[0].values print("读取指定行的数据:\n{0}".format(data)) 第一次编…

IT学习笔记--Flink

概况: Flink 是 Apache 基金会旗下的一个开源大数据处理框架。目前,Flink 已经成为各大公司大数据实时处理的发力重点,特别是国内以阿里为代表的一众互联网大厂都在全力投入,为 Flink 社区贡献了大量源码。 Apache Flink 是一个…

Vscode发生鼠标悬停正在加载、无法跳转和提示词的问题

Vscode发生鼠标悬停正在加载、无法跳转和提示词的问题 查看python语言服务器的日志,确定问题。 我的问题是加载的vscode 目录下存在一个很大的数据集目录,导致无法正常工作。 解决办法: 在vscode的pylance设置中,排除对应的目…

使用 PlayCanvas 创建带有后处理效果的 3D 场景

本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 PlayCanvas 创建带有后处理效果的 3D 场景 应用场景介绍 本代码演示了如何使用 PlayCanvas 创建一个带有后处理效果的 3D 场景。用户可以在场景中查看一个棋盘模型,并使用后处理效果为场景添…

达梦 执行查询语句时报[-544]:Out of sort buf space

达梦数据库有时执行SQL中有时报[-544]:Out of sort buf space, try to adjust SORT_BUF_GLOBAL_SIZE, SORT_BUF_SIZE, SORT_BLK_SIZE. 第一反应是这条语句占用排序区太大。但真实原因是前面执行的语句耗光了全局排序区,后面SQL任何小的排序操作都会报这个错误从而执…

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

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

算法金 | 再见!!!KNN

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 KNN算法的工作原理简单直观,易于理解和实现,这使得它在各种应用场景中备受青睐。 我们将深入探讨KNN算法&…

Easy 同学:AI 时代将加速计算机专业和程序员职业的分化

一、原贴 2024 年 6 月 5 日 拥有 60多万粉丝的方糖气球(ftqq.com)博主 、独立开发者:Easy 发表了一篇 AI 对计算机专业和程序员行业影响的新浪博客,看后很有启发,故而将原文摘录于此: 单独开个贴说一下吧…

文心一言 VS 讯飞星火 VS chatgpt (275)-- 算法导论20.3 2题

二、修改 vEB 树以支持带有卫星数据的关键字。如果要写代码,请用go语言。 文心一言: vEB 树(van Emde Boas 树)是一种用于处理稀疏位集合的高效数据结构,它允许在常数时间内执行查找、插入、删除和前驱/后继操作。然…

6.更复杂的光照

一、Unity的渲染路径 渲染路径决定了光照是如何应用到Unity Shader中的。我们需要为每个Pass指定它使用的渲染路径 如何设置渲染路径? Edit>Project Settings>Player>Other Settinigs>Rendering 如何使用多个渲染路径?如:摄像…

Vuex 4与状态管理实战指南

title: Vuex 4与状态管理实战指南 date: 2024/6/6 updated: 2024/6/6 excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需要状态管理,Vuex的核心概念如store、actions、mutations和getters,以及如何处理异步操作和模…

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

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

USB (1)

再看USB 其实回过头看USB 是可以和无线 有线(internet) 可以和PCIe 甚至AXI类比的 它们共通处在于都是communication 有限通信 有7层网络协议 在USB也是分层的 不同的协议,依赖的介质不一样 这就要求相应的Physical层处理 USB的physical层是基于Serdes的,所以有串并/并串的…

找寻卓越的生成式人工智能应用案例?别浪费在无趣之处!

“ 生成式AI(AI)技术的强大众所周知。但不知道你们是否和我有一样感觉,目前市面上,企业对生成式AI的应用,场景大多较为单一。” Ingo Mierswa Altair产品开发高级副总裁 我说这些生成式AI的应用单一,是指…

让你工作效率飞起的五款软件

🌟 No.1:亿可达 作为一款自动化工具,亿可达被誉为国内版的免费Zaiper。它允许用户无需编程知识即可将不同软件连接起来,构建自动化的工作流程。其界面设计清新且直观,描述语言简洁易懂,使得用户可以轻松上…

【数据结构与算法 经典例题】反转链表(图文详解)

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法 经典例题》C语言 期待您的关注 ​ 目录 一、问题描述 二、解题思路分析 三、代码实现 一、问题描述 二、解题…

⾃动化批量管理-Ansible

目录 一、ansible 简介 自动化工具选择 (了解)​编辑 1、ansible 是什么? 2、ansible 特点 3、ansible 架构图 二、ansible 任务执行 1、ansible 任务执行模式 2、ansible 执行流程 3、ansible 命令执行过程 三、ansible 配置详解 …

一文看懂Llama 2:原理、模型与训练

一文看懂Llama 2:原理、模型与训练 Llama 2是一种大规模语言模型(LLM),由Meta(原Facebook)研发,旨在推动自然语言处理(NLP)领域的发展。本文将详细介绍Llama 2的原理、模…