首页 > 其他分享 >【深度学习】参数量、模型大小、显存

【深度学习】参数量、模型大小、显存

时间:2023-06-22 23:45:01浏览次数:195  
标签:显存 卷积 模型 特征 深度 C2 数量

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

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三维点云重建
更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。
————————————————
版权声明:本文为CSDN博主「Coding的叶子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/suiyingy/article/details/125173843

标签:显存,卷积,模型,特征,深度,C2,数量
From: https://www.cnblogs.com/chinasoft/p/17498590.html

相关文章

  • 肖桐、朱靖波-机器翻译统计建模与深度学习方法
        分享一本由肖桐、朱靖波老师编著,东北大学自然语言处理实验室·小牛翻译 联合出品的新书《机器翻译统计建模与深度学习方法》。本书中文编著,对机器学习相关历史和涉及知识进行详细、全面、深入讲解,非常值得深入阅读、学习。          本书全面回顾了近三十年内......
  • 深度学习面试、从业-从理论到实践一站式资源整理分享
       本资源是一站式深度学习在线百科,内容涵盖零基础入门深度学习、产业实践深度学习、特色课程;深度学习百问、产业实践(开发中) 等等。从理论到实践,从科研到产业应用,各类学习材料一应俱全,旨在帮助开发者高效地学习和掌握深度学习知识,快速成为AI跨界人才。内容全面:无论您是深度......
  • 深度学习能量模型/能力学习相关论文、会议、博客资源整理分享
       基于能量的模型(EBM)是生成模型(GM)的一种形式。GM通过分析样本数据集学习基础数据分布。训练后,GM可以产生其他与数据分布相匹配的数据集。EBM为许多此类学习的概率和非概率方法(尤其是图形和其他结构化模型的训练)提供了统一的框架。   EBM学习目标数据集的特征并生成相似但......
  • 量化及定点化模型压缩常见方法、特定及优缺点整理
        模型压缩简答说就是将庞大的深度学习模型进行压缩,常见方法包括五大类,分别是剪枝、量化、正则化、知识蒸馏、条件计算。    量化是模型压缩常用方法之一,本文不完全包括了一些神经网络Fixed-PointTraining(定点化训练)相关的方法进行了详细整理,拆分,并对优缺点进行了对比分......
  • 一文回顾深度学习发展史上最重要经典模型
        这篇文章的目的是回顾经过时间考验的,被广泛采用的想法。我将介绍一小部分技术,这些技术涵盖了解现代深度学习研究所必需的许多基本知识。如果你是该领域的新手,那么这是一个很好的起点。         深度学习是一个瞬息万变的领域,大量的研究论文和想法可能会令人不知所......
  • 2022年最新目标跟踪顶会论文及模型整理分享
        啥是ObjectTracking(目标追踪)?    简单点,一幅画面,指定里面一个目标,比如人、动物、车、飞机等等,然后一直死死锁定这个目标,不丢。    有啥用?    相机跟踪对焦,车辆跟踪,人体、人脸跟踪,手势跟踪等等;    比如:    经常看见电视上,警察叔叔要抓一些犯事儿的人,监......
  • 历史最全GAN模型PyTorch代码实现整理分享
        如果你是第一次接触AE自编码器和GAN生成对抗网络,那这将会是一个非常有用且效率的学习资源。所有的内容使用PyTorch编写,编写格式清晰,非常适合PyTorch新手作为学习资源。本项目的所有模型目前都是基于MNIST数据库进行图片生成。MNIST数据集是一个比较小,一个光CPU就能跑起来的......
  • 深度学习网络架构搜索(NAS)最新必读论文分享
        在过去的很多年深度学习在视觉、语音等方面都已经取得了巨大的成功,其中一个很大的原因就是出现了很多新颖的网络结构——ResNet、MobileNet、ShuffleNet等。随着网络结构越来越复杂,人工设计网络的试错成本和时间成本会难以承受。    超参数的自动搜索优化是一个古老的......
  • Transformer及其变体模型在计算机视觉领域应用论文盘点
       AttentionIsAllYouNeed是一篇Google提出的将Attention思想发挥到极致的论文。这篇论文中提出一个全新的模型,叫Transformer,抛弃了以往深度学习任务里面使用到的CNN和RNN,目前大热的Bert就是基于Transformer构建的,这个模型广泛应用于NLP领域,例如机器翻译,问答系统,文本......
  • 【环境部署】SPECTER模型-基于transformer的科学出版物
    论文背景标题:SPECTER:Document-levelRepresentationLearningusingCitation-informedTransformers摘要:表示学习是自然语言处理系统的关键组成部分。像BERT这样的最新Transformer语言模型学习了强大的文本表示,但这些模型针对标记和句子级别的训练目标,并不利用相关性信息,这限......