CNN kernel与模型参数量、计算量

Olivia ·
更新时间:2024-09-20
· 670 次阅读

CNN基础知识不牢固,总是会有一些理解不透彻的问题与地方。在此集中对kernel的参数、卷积过程以及channel进行回顾性总结理解。

1、卷积过程基本概念

本部分我在CSDN博客 第一部分有针对卷积过程的基本叙述,但是事实上长期不回顾就会有遗忘与不理解,重点还是要时时温故而知新,并且需要对基础知识弟子打牢。

1.1、feature map

在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮一样),其中每一个称为一个feature map。

输入层:在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。

中间层或者输出层:层与层之间会有若干个卷积核(kernel)。上一层中全部的feature map和一个卷积核做卷积,都会产生下一层的一个feature map;若设置有N个卷积核,下层就会产生N个feather map。

注意一般卷积核未3*3大小,但是要注意卷积核是有channel的,channel数目与上层所对应的feature map个数完全相同。

1.2、卷积核

卷积核在有的文档里也称为过滤器(filter):

每个卷积核具有长宽深三个维度; 在某个卷积层中,可以有多个卷积核:下一层需要多少个feather map,本层就需要多少个卷积核。

再来看看卷积核的计算过程:举例vgg网络来说,输入224x224x3(rgb三通道),输出是32位深度,卷积核尺寸为5x5。

那么我们需要32个卷积核,每一个卷积核的尺寸为5x5x3(最后的3就是原图的rgb位深3),每一个卷积核的每一层是5x5(共3层)分别与原图的每层224x224卷积,然后将得到的三张新图叠加(算术求和),变成一张新的feature map。 该过程重复32遍则可以得到该层的输出。

不管输入图像的深度为多少,经过一个卷积核(filter),最后都通过下面的公式变成一个深度为1的特征图。不同的filter可以卷积得到不同的特征,也就是得到不同的feature map。
在这里插入图片描述

1.3、卷积核计算过程的理解:

因为卷积核实际上就是如3x3,5x5这样子的权值(weights)矩阵。我们的网络要学习的其实就是这些权值(weights)的数值。网络不断前后向的计算学习,一直在更新出合适的weights,也就是一直在更新卷积核。卷积核在更新了,学习到的特征也就被更新了

卷积神经网络的一整套流程就是:更新卷积核参数(weights),就相当于是一直在更新所提取到的图像特征,以得到满足深度学习任务要求的特征。

2、深度学习网络的计算量与参数量

这部分我们在具体的深度学习任务中使用的非常多,涉及到模型的评价与改进;在此对模型的计算量与参数量分别进行总结。

2.1、参数量:

决定模型的大小,尤其在移动端存储空间寸土寸金的现状下,减小模型的参数量非常有必要。

2.2、计算量:

与模型的计算速度有直接的关系,计算量越大则程序的运行速度越慢。

3、卷积网络的发展趋势

这一部分拾人牙慧,感觉分析的还是很有道理。

1.小–模型有效且参数少

2.快–运行速度快

3.准–与大模型有相当的准确率


作者:NCU_wander



参数 cnn 模型 kernel

需要 登录 后方可回复, 如果你还没有账号请 注册新账号