VGG16网络结构是:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 150, 150, 3)       0         
_________________________________________________________________
block1_conv1 (Conv2D)        (None, 150, 150, 64)      1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (None, 150, 150, 64)      36928     
_________________________________________________________________
block1_pool (MaxPooling2D)   (None, 75, 75, 64)        0         
_________________________________________________________________
block2_conv1 (Conv2D)        (None, 75, 75, 128)       73856     
_________________________________________________________________
block2_conv2 (Conv2D)        (None, 75, 75, 128)       147584    
_________________________________________________________________
block2_pool (MaxPooling2D)   (None, 37, 37, 128)       0         
_________________________________________________________________
block3_conv1 (Conv2D)        (None, 37, 37, 256)       295168    
_________________________________________________________________
block3_conv2 (Conv2D)        (None, 37, 37, 256)       590080    
_________________________________________________________________
block3_conv3 (Conv2D)        (None, 37, 37, 256)       590080    
_________________________________________________________________
block3_pool (MaxPooling2D)   (None, 18, 18, 256)       0         
_________________________________________________________________
block4_conv1 (Conv2D)        (None, 18, 18, 512)       1180160   
_________________________________________________________________
block4_conv2 (Conv2D)        (None, 18, 18, 512)       2359808   
_________________________________________________________________
block4_conv3 (Conv2D)        (None, 18, 18, 512)       2359808   
_________________________________________________________________
block4_pool (MaxPooling2D)   (None, 9, 9, 512)         0         
_________________________________________________________________
block5_conv1 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_conv2 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_conv3 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_pool (MaxPooling2D)   (None, 4, 4, 512)         0         
=================================================================

下面是转载的内容:

先说一下我对神经网络的理解:神经网络就是用巨量的简单的非线性函数组合起来拟合复杂的未知函数。比如,人类识别不同的物体、识别不同动物、不同植物是个复杂的未知函数。虽然未知,但没事,我们的神经网络可以用巨量的简单非线性函数组合来拟合出来。而且实践证明在很多场景下效果非常好。而如何确定这些巨量的简单非线性函数的大量参数呢?通过机器学习,机器训练。

著名的卷积神经网络VGG16,论文上写参数有1.3亿个,查了很多文章,很多都是错的,有些对的,但是没有解释为什么这样算,意义是啥。

最近发现难以理解的原因是对卷积的误解。网上几乎所有讲卷积网络的文章,演示卷积的时候都是一个n×n的表。其实神经网络里的卷积核是立体的三维卷积核,而卷积过程也是3维卷积。

虽然vgg输入是一个224×224的图片,但是考虑到图片的色彩,那么输入就是一个224×224×3的3维矩阵。所以卷积核也是三维的才匹配。考虑到每一层有多个卷积核,那就是再加一维,所以每一层其实一个4维矩阵来运算处理输入的3维矩阵。

下面计算vgg16的参数:

计算里:乘法里前面3个数字是三维的卷积核的尺寸,乘法项最后一个数字是这一层的卷积核数量,加法项是偏置参数数量

第1层:1792 =3*3*3*64+64;

第1层: 1792 =3*3*3*64+64;前面的3*3*3是三维的卷积核,64是这一层的卷积核数量,最后的是偏置参数数量

第2层: 36928    =3*3*64*64+64

第3层: 73856    =3*3*64*128+128

第4层: 147584  =3*3*128*128+128

第5层: 295168  =3*3*128*256+256

第6层: 590080  =3*3*256*256+256

第7层: 590080  =3*3*256*256+256

第8层: 1180160  =3*3*256*512+512

第9层: 2359808  =3*3*512*512+512

第10层:2359808  =3*3*512*512+512

第11层:2359808  =3*3*512*512+512

第12层:2359808  =3*3*512*512+512

第13层:2359808  =3*3*512*512+512

第14层:102764544=7*7*512*4096+4096

第15层:16781312 =4096*4096+4096

第16层:4097000  =4096*1000+1000

总计:138357544个

卷积神经网络VGG16权重数量的计算和理解(转载)相关推荐

  1. vgg16卷积层的计算量_卷积神经网络VGG16参数数量的计算和理解

    先说一下我对神经网络的理解:神经网络就是用巨量的简单的非线性函数组合起来拟合复杂的未知函数.比如,人类识别不同的物体.识别不同动物.不同植物是个复杂的未知函数.虽然未知,但没事,我们的神经网络可以用巨 ...

  2. 卷积神经网络的参数量和计算量

    <卷积神经网络的参数量和计算量>   对于在端部署的模型来说,模型的参数量以及计算量是锱铢必较的,使用什么样的激活函数,会有多大的计算成本.对于模型的压缩量化等都是模型的参数量和计算量的准 ...

  3. vgg16卷积层的计算量_卷积神经网络VGG16详解

    VGG网络图如下,本文要深入讲解的是很常用的VGG16网络.在看懂VGG16网络之前,先补一下卷积神经网络的知识,然后用代码实例来更好说明VGG16网络 VGG网络 图片数据如何输入? 彩色图像有RG ...

  4. 计算卷积神经网络中参数量

    参考 卷积神经网络的参数包含:卷积层的权重和偏置,全连接层的权重和偏置 全连接层参数量 在计算参数量前,先了解卷积计算过程.如下图,给定的图像尺寸是32x32x3(高,宽,深度).对这张图像进行卷积, ...

  5. 卷积神经网络VGG16

    很多人想入门做深度学习,但往往翻遍网络看完一篇又一篇所谓的"入门教程",paper,包括很多深度学习框架官方给出的案例,给人的感觉真的是从入门到放弃.写教程的作者有很多都是技术大神 ...

  6. 深度学习之基于卷积神经网络(VGG16)实现性别判别

    无意间在kaggle上发现的一个数据集,旨在提高网络模型判别男女的准确率,博主利用迁移学习试验了多个卷积神经网络,最终的模型准确率在95%左右.并划分了训练集.测试集.验证集三类,最终在验证集上的准确 ...

  7. CNN卷积层神经元数量、连接数量、权重数量的计算

    1. 神经元的数量: 和输入层类似,输出维度是多少,神经元就有多少 feature map大小 * feature map数量 2. 连接数量: 全连接: 输入层神经元数量*输出层神经元数量 CNN局 ...

  8. 深入理解卷积神经网络 VGG16

    文章目录 一.认识 VGG 16 1. 相关知识 2. 块结构 3. 特点 4. 权重参数 二.分析 VGG16 的过程 三.理解神经网络 VGG 16 四.用VGG16 来做一个图像识别案例 一.认 ...

  9. 神经网络中参数数量的计算

    详情请见: https://blog.csdn.net/qian99/article/details/79008053 https://www.cnblogs.com/touch-skyer/p/91 ...

最新文章

  1. 360浏览器打不开qq空间_浏览器变慢有救了!只要2秒,重回新安装一样爽快!
  2. python graphql query返回一组字典数据_Python的sqlalchemy使用原生sql查询如何返回字典形式的数组?...
  3. 疯狂了!当游戏爱上MongoDB会怎么样???
  4. 大学生利用漏洞薅肯德基羊毛,获刑两年半
  5. 远程桌面连接服务器,提示身份验证错误,要求的函数不受支持,但又找不到加密Oracle修正
  6. PHP工程师学习计划
  7. Linux音频驱动-IIS总线标准
  8. Python实现支持人机对战的五子棋软件(超详细)
  9. 如何用xilinx sdk输出hello world
  10. Retinex理论,单尺度Retinex、多尺度Retinex(MSR)、带颜色恢复的多尺度 Retinex(MSRCR)原理
  11. 解决Unity TextMeshPro 不能显示中文问题
  12. CMM(Capability Maturity Model) 能力成熟度模型
  13. 经典!沐风老师3DMAX建模实例系列教程上线啦。。。
  14. 爷爷:啥是佩奇?佩奇:Python 10 秒做出来,你看像不像?
  15. HTTP keep-alive和TCP keepalive的区别,你了解吗?
  16. 亚马逊测评如何做?亚马逊测评的获得方法?
  17. SWUST OJ 1168 喝可乐
  18. 已知一点的经纬度和该点到另一点的距离,求另一点的经纬度
  19. Spark RDD 简述
  20. 阿里云腾讯云轻量应用服务器搭建网站教程

热门文章

  1. Linux基础-查看文件与目录
  2. 喷水装置(一)--nyoj题目6
  3. python 连 mongodb
  4. 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
  5. 使用vant 自定义弹框
  6. 两个或者多个图片上下之间有空隙
  7. 你未必知道的49个CSS知识点
  8. Vue项目设置代理解决开发环境下的跨域问题
  9. 一些试题:C++面试题.万能Key
  10. ubuntu安装-Caffe依赖