如何计算神经网络参数的个数?

news2025/1/16 11:01:38

目录

1. 卷积层

2. 分类层

3. 计算 LeNet 网络的参数个数


神经网络随着层数的加深,网络参数的个数会越来越多,小的网络有成千上万个参数,大的可以达到千万个网络参数。

所以应该如何计算神经网络参数的个数?

图像分类的神经网络,包含两个部分:特征提取层+ 分类层

特征提取层就是将提取图像中的特征,这里的特征就是图像的细节,例如边缘、关键点等等。类似于人在识别物体的时候,往往不需要看清物体具体长什么样子,只需要观察大概的轮廓就知道这个物体是人还是树。那么这里人的轮廓或者树的轮廓就是特征,而我们是不需要知道这个人长得怎么样的。

因此神经网络的特征提取层就是在不断的提取这些特征

如果把神经网络比作一个近视的人的话,那么他在分类例如人、树的时候,度数就可以深一点(神经网络可以浅一点),只要不是太瞎,都可以将人、树进行分类。但是在做男人、女人分类的时候就不能这么瞎了,因为男人女人的轮廓是近似的,所以随着分类任务的难度,神经网络的就要叠加深度,让神经网络不要看的那么模糊

在神经网络中,特征提取的操作就是利用卷积。最典型的例子就是假如卷积核是soebl算子的时候,就可以进行垂直或者水平的边缘检测(具体的可以参考图像处理的空域滤波)。因此,特征提取的卷积操作只不过是神经网络将它认为的关键特征逐步的提取出来而已

而分类层就提取的特征按照label进行分类,用的是线性的全连接

所以,计算神经网络里面的参数包含两个部分:特征提取层+ 分类层

1. 卷积层

这里先介绍卷积层的参数

上图是一个3维图像的卷积过程,这里将图像的维度叫做通道(channel)。卷积的过程就是建立一个卷积核对每个通道的图像进行卷积(每个通道对应不同的卷积核),然后相加产生一个单通道的图像

因为神经网络学习的内容就是卷积核里面的权重是多少,那么这里需要参数的个数就是 3*3*3 = 27

如果图像的维度不是3通道呢 ?或者说输出的维度一定是 单通道 ?

我们将它当成方块来进行思考,一个方块就是一组卷积核。这样图像的维度是C的话,将C个卷积核堆在一块就是一组卷积核,那么产生的图像仍然是单通道的(一层输出特征图)

只要将方块(一组卷积核)的个数任意扩展,那么输出的图像就是多通道了

所以上述图像参数个数是:FH * FW * C * FN,也就是一个方块的权重个数 * FN 个,然后每个方块又是由一片一片的卷积核堆起来的,就等于 FH * FW * C

所以,卷积层的参数计算公式为 :卷积核的size * 一组卷积核的深度 * 总共有多少组

这里与之对应的关系是:卷积核的深度 = 输入图像的深度,方块的个数 = 输出图像的深度

所以,可以得出下面的参数个数

 而偏置bias 是等于方块的个数,也就是输出的深度

如果将bias改为True的话,加上输出的深度就行了,这里是6,所以答案为456

2. 分类层

全连接层的计算很简单,就是:输入的深度 * 输出的深度

如下的线性层,这里是 84*10 = 840

 而偏置bias 是等于输出的个数

如果将bias改为True的话,加上输出的深度就行了,这里是10,所以答案为850

 

3. 计算 LeNet 网络的参数个数

LeNet 网络结构如图

conv1 的参数个数为:3*6*5*5 + 6 = 456

这里的3 是输入的深度,6是输出的深度,5是卷积核的大小,这里是正方形 5 * 5

因此网络总参数个数应该为:456+2416+48120+10164+850=62006

如图,和我们计算的结果一样

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

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

相关文章

分享五款没什么名气却意外好用的软件

噔噔噔噔,作为一个黑科技软件爱好者,电脑里肯定是不会缺少这方面的东西,今天的5款优质软件闪亮登场了。 1.密码管理工具——RoboForm 这是一款密码管理的小插件,相信很多人都曾被各种各样的密码记忆弄得心力交瘁过,尤…

全国公务员考试:行测篇01《资料分析》

文章目录导读一、统计术语1.1、基期和现期1.2、增长量1.3、增长率1.4、例题1.5、年均增长量1.6、年均增长率1.7、同比和环比1.8、比重1.9、倍数1.10、平均数1.11、百分数1.12、成数1.13、翻番1.14、顺差和逆差1.15、GDP1.16、三大产业1.17、恩格尔系数和基尼系数1.18、五年计划…

【吴恩达机器学习笔记】六、过拟合及正则化

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

JSON Web Token

目录1. 概念1. JWT 概述2. session认证流程2. JWT认证流程2. 使用JWT1. 获取令牌2. 验证令牌3. 封装工具类3. Springboot整合JWT1. 项目搭建2. 使用JWT3. 优化代码1. 概念 1. JWT 概述 JWT: 概念: 通过 JSON 形式作为 Web 应用中的令牌,用于…

[附源码]计算机毕业设计springboot贷款申请审核管理系统论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

「Vue3」手把手教你使用 Vite 快速搭建项目

本项目选型默认使用vue3 typescript vite 1. 使用vite初始化项目 vite创建地址,创建完成后有一个基本的项目结构了,如下图 2. 配置vite.config.ts,配置详解 import { defineConfig } from viteimport path from path;import vue from …

【PS-6】视图操作

目录 旋转视图工具 选项栏中的“滚动所有窗口 用【空格键】移动视图 将图片放大缩小的方法 1、缩放工具 2、通过鼠标右键对画面进行放大或缩小 3、【细微缩放】按钮 4、通过【CTRL /-】放大缩小 5、窗口→导航器 旋转视图工具 此工具常用于与数位板的结合使用 位置&…

北大惠普金融指数-匹配企业绿色创新指数2011-2020年:企业名称、年份、行业分类等多指标数据

1、数据来源:北京大学数字金融中心、国家统计局、国家专利产权局等部门公开数据 2、时间跨度:2011-2020年 3、区域范围:全国 4、指标说明: 中国内地31个省(直辖市、自治区,简称“省”)、337…

Rust机器学习之Linfa

Rust机器学习之Linfa 众所周知,Python之所以能成为机器学习的首选语言,与其丰富易用的库有很大关系。某种程度上可以说是诸如numpy、pandas、scikit-learn、matplotlib、pytorch、networks…等一系列科学计算和机器学习库成就了Python今天编程语言霸主的…

【MAX7800实现KWS20 demo演示】

【MAX7800实现KWS20 demo演示】1. 概述2. 关键字定位演示2.1 构建固件:2.2 选择板卡2.3 MAX78000 EVKIT2.3.1 MAX78000 EVKIT下载程序2.3.2 MAX78000 EVKIT 跳线设置2.3.3 MAX78000 EVKIT 操作2.4 MAX78000 Feather2.4.1 MAX78000 Feather羽毛板下载固件2.4.2 MAX78…

IBM MQ MQCSP

一,概念 1.1 用途 用途:MQCSP 结构使授权服务能够验证用户 ID 和密码。您在 MQCONNX 调用上指定 MQCSP 连接安全参数结构。 警告:在某些情况下,客户端应用程序的 MQCSP 结构中的密码将以纯文本形式通过网络发送。要确保客户端应…

【学习笔记58】JavaScript面向对象

一、认识面向对象 (一)面向过程编程 按照程序执行的过程一步一步的完成程序代码 (二)面向对象编程 面向对象编程是一种编程的方式/模式官方:对一类具有相同属性和功能的程序代码抽象的描述,实现代码编程…

Triangle Attack: A Query-efficient Decision-based Adversarial Attack

Triangle Attack: A Query-efficient Decision-based Adversarial Attack 三角攻击:一种查询高效的基于决策的对抗性攻击 Abstract 基于决策的攻击对实际应用程序构成了严重的威胁,因为它将目标模型视为一个黑箱,只访问硬预测标签。最近已经做出了很大…

【计组】指令和运算1--《深入浅出计算机组成原理》(二)

一、计算机指令 1、指令 从软件工程师的角度来讲,CPU就是一个执行各种计算机指令(Instruction Code)的逻辑.。 这里的计算机指令,也可以叫做机器语言。 不同发CPU支持的机器语言不同,如个人电脑用的是Intel的CPU&a…

同样Java后端开发三年,朋友已经涨薪到了30k,而我才刚到12K。必须承认多背背八股文确实有奇效!

程序猿在世人眼里已经成为高薪、为人忠诚的代名词。 然而,小编要说的是,不是所有的程序员工资都是一样的。 世人所不知的是同为程序猿,薪资的差别还是很大的。 众所周知,目前互联网行业是众多行业中薪资待遇最好的,…

2022年NPDP新版教材知识集锦--【第四章节】(2)

【概念设计阶段】(全部获取文末) 概念描述提供了产品概念的优点和特征的定性描述,其必要性体现在: ①为开发团队的所有成员以及与项目相关的成员提供了清晰性和一致性。 ②是向潜在客户解释产品的重要手段之一。 典型流程: 2.1概念工程 …

python使用websocket服务并在fastAPI中启动websocket服务

依赖 pip install websockets-routes 代码 import asyncio import websockets import websockets_routes from websockets.legacy.server import WebSocketServerProtocol from websockets_routes import RoutedPath# 初始化一个router对象 router websockets_routes.Router()…

Archlinux安装软件的那些事

个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!文章目录1、ArchLinux1.1 ArchLinux原则1.2 软件包管理1.2.1 软件仓库1.2.2 包管理器2、Pacman2.1 pacman介绍2.…

什么是幂等性?四种接口幂等性方案详解!

幂等性在我们的工作中无处不在,无论是支付场景还是下订单等核心场景都会涉及,也是分布式系统最常遇到的问题,除此之外,也是大厂面试的重灾区。 知道了幂等性的重要性,下面我就详细介绍幂等性以及具体的解决方案&#…

SpringBoot中自动配置

第一种: 给容器中的组件加上 ConfigurationProperties注解即可 测试: Component ConfigurationProperties(prefix "mycar") public class Car {private String brand;private Integer price;private Integer seatNum;public Integer getSeat…