IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【深度学习】参数量、模型大小、显存 -> 正文阅读

[人工智能]【深度学习】参数量、模型大小、显存

????????对于一个深度学习神经网络来说,其通常包含很多卷积层,用于不断提取目标的特征,或对目标进行最终定位或者分类。

1 数据存储精度与存储空间

????????在深度学习神经网络中,最常见的数据格式是float32,占4个字节(Byte)。类似地,float16,占2个字节。1024个字节为1KB,1024x1024个字节为1MB。那么存储10000个参数需要的内存大小为10000x4 Bytes,约为39KB。存储100万个参数需要的内存大小为39x100/1024MB,约为3.8MB。

????????深度学习神经网络的参数量通常是百万级之上的,所以我们可以将3.8MB看作是一个基本单位,即每一百万个数字需要3.8MB。

????????注意到,不仅仅是参数存储需要空间,数据本身(例如图像的像素、特征图中的每个元素)也是一个数字,也需要相同的存储空间。

2 单层卷积参数量

????????这里,首先以一层卷积为例,假设卷积为二维卷积Conv2d,输入通道为C1,输出通道为C2,卷积核大小为KxK,batch size大小为N,数据格式为float 32,经过卷积后特征图大小为HxW。

? ? ? ? 那么,卷积本身的参数量为C2xC1xKxK。将C1看作输入数据的特征维度,卷积是要对每个特征维度都进行KxK卷积。每进行一次卷积就可以得到一个HxW的特征图。通道C2相当于进行了C2次卷积,为特征图的每个元素赋予C2个特征。因此,卷积本身的参数量为C2xC1xKxK,亦即模型本身的大小。如果除卷积外,还有偏置参数,那么参数量为C2xC1x(KxK+1)。这里忽略偏置参数量,因为相比总的参数量来说,偏置所占比例较小。

? ? ? ? 在训练阶段,模型还需要存储梯度相关参数,并且不同的优化器需要的参数个数也是不同的。因此,模型参数量至少需要乘以2,即C2xC1xKxKx2。

3 单层输出参数量

? ? ? ? 输出参数量是指特征图存储的参数量。如上所述,模型输出的特征图尺寸大小为HxW,通道数为C2,那么总的参数量为C2xHxW。对于三维卷积,模型输出的特征图会有三个维度,即HxWxD。

? ? ? ? 在模型训练时,计算还需要存储反向传播的特征图,因此输出参数量也需要乘以2,即C2xHxWx2。由于训练阶段会有多个batch同时进行,因此参数量还需乘上batch size,即NxC2xHxWx2。

4 总体参数量与显存大小

? ? ? ? 模型总的参数量为各个卷积层参数量之后,每一层参数量用C2xC1xKxK计算。

? ? ? ? 训练阶段总的参数为模型参数量与输出参数量之和,即C2xC1xKxK+NxC2xHxWx2。

? ? ? ? 推理阶段总的参数为模型参数量与输出参数量之和,即C2xC1xKxKx2+C2xHxW。

5 示例

? ? ? ? 假设C1=256,C2=512,H=128,W=128,K=3,N=8。

? ? ? ? 那么模型参数量为:C2xC1xKxKx2=2359296,存储大小为2359296x4/1024/1024MB=9MB。

? ? ? ? 训练阶段参数量为C2xC1xKxK+NxC2xHxWx2=136577024,显存占用136577024x4/1024/1024MB=521MB。

? ? ? ? 推理阶段参数量为C2xC1xKxKx2+C2xHxW=10747904,显存占用41MB。

? ? ? ? 以上仅仅是就一层而言的计算结果,深度学习神经网络总的参数量、模型大小和显存可以通过逐一计算每层的结果,最后求和即可。

6?【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python三维点云重建

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:35:35  更:2022-06-14 22:37:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:42:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码