cnn中一些基础,卷积核,通道数,池化层,批归一化层,参数量与计算量

卷积神经网络中卷积核的高度和宽度通常为奇数,例如 1、3、5 或 7。选择奇数的好处是,保持空间维度的 同时,我们可以在顶部和底部填充相同数量的行,在左侧和右侧填充相同数量的列。
通道数:可以将每个通道看作是对不同特征的响应。而现实可能更为复杂一些,因为每个通道不是独立学习的,而是为了共同使用而优化的。因此, 多输出通道并不仅是学习多个单通道的检测器。

池化层:降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性。使用大于1的池化层可以降维。在每个输入通道上单独运算。跟卷积层不一样。卷积层是在通道上对输入进行汇总。输出通道数与输入通道数一致。
池化层,可以使得特征量减少,尺度减小。
pooling:目的是为了保持某种不变性(旋转不变性,平移不变性,伸缩不变性(尺度))
提取特征的主要误差来自以下两个方面:

  1. 邻域大小受限造成的估计值方差增大
  2. 卷积层参数误差造成估计均值的偏移

一般来说

  • mean-pooling(平均池化),能减小第一种误差,更多的保留图像的背景信息
  • max-pooling(最大池化),能减小第二种误差,更多的保留纹理信息。

批归一化(BN层):对输入进行归一化,归一化就是将数据的输入值减去其均值然后除以数据的标准差,几乎所有数据预处理都会使用这一步骤。使得研究人员能训练100层以上的网络。批归一化最适应50-100范围中小批量尺寸。
归一化用在卷积层或全连接层,在激活函数之前。
是否需要在每个层中进行批量归一化?
批归一化,所做的其实就是在网络的每一层都进行数据归一化处理,但每一层对所有数据都进行归一化处理的计算开销太大,因此就和使用最小批量梯度下降一样,批量归一化中的“批量”其实是采样一小批数据,然后对该批数据在网络各层的输出进行归一化处理 。
是否可以用其他方案代替归一化,如全秩协方差估计

深度学习中参数量与计算量的理解
计算量:
计算量=(kernelkernelmap*map) channel_inputchannel_output

mapmap是下个featuremap的大小,也就是上个weightweight到底做了多少次运算

其中kernelkernelmap*map= 1个feature的计算量

计算量

参数量
原文链接:
参数量:
参数量:

kernel*kernel 就是weight * weight

其中kernel*kernel = 1个feature的参数量

定义公式相关
计算量对应我们之前的时间复杂度,计算量要看网络执行时间的长短。(kernel* kernel * map*map) * channel_input * channel_output与计算量和图像输出大小有关,和图像输入大小无关,和通道数有关,和卷积核大小有关,和批大小有关。
参数量对应我们之前的空间复杂度,参数量要看占用显存的量(kernel*kernel) * channel_input *channel_output和channel是有关的,和卷积核大小是有关的,也就是说,多层channel的卷积核是不共享权值的。无论图像大小是多少,每个channel都只有一个kernel权值共享。

注:kernelkernel 就是weightweight
参考链接1
参考链接2

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值