如何得到卷积层输出的深度--CNN卷积层

tensorflow代码(Tensorflow官方文档)中:
w_conv1=weight_variable([5,5,1,32]),一直不明白这个32是怎么来的,表示的是什么?
 
后来看到cs231n-知乎课程翻译的卷积神经网那一章的一段话:

参数共享:在卷积层中使用参数共享是用来控制参数的数量。就用上面的例子,在第一个卷积层就有55x55x96=290,400个神经元,每个有11x11x3=364个参数和1个偏差。将这些合起来就是290400x364=105,705,600个参数。单单第一层就有这么多参数,显然这个数目是非常大的。

作一个合理的假设:如果一个特征在计算某个空间位置(x,y)的时候有用,那么它在计算另一个不同位置(x2,y2)的时候也有用。基于这个假设,可以显著地减少参数数量。换言之,就是将深度维度上一个单独的2维切片看做深度切片(depth slice),比如一个数据体尺寸为[55x55x96]的就有96个深度切片,每个尺寸为[55x55]。在每个深度切片上的神经元都使用同样的权重和偏差。在这样的参数共享下,例子中的第一个卷积层就只有96个不同的权重集了,一个权重集对应一个深度切片,共有96x11x11x3=34,848个不同的权重,或34,944个参数(+96个偏差)。

可以看出,上面的32表示的是卷积层输出的深度,因为大家都明白width和height都可以通过公式计算得到,但是很多文献都没有告诉深度是如何得到的,下面是我的认识:

1. 因为这个深度是没有公式可以计算出来的,因为深度是一个经验值,如上面代码的32 ,其实是一个经验值,是通过调整参数发现32是一个最合适的值,可以得到最好的准确率,但是不同的图像的深度是不一样的。

2.这个深度表示用了多少个卷积核,下面这个图可以说明一下:

上图就可以很有效的说明 :卷积层输出的深度==卷积核的个数。


                
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
卷积神经网络(Convolutional Neural Network,CNN)是一种常用于图像处理和计算机视觉任务的深度学习模型。卷积层CNN中的核心组件之一,它通过卷积操作提取输入数据的特征。 在卷积层的反向传播推导中,我们需要计算损失函数对于卷积层输入、权重和偏置的梯度。下面是卷积层反向传播推导的步骤: 1. 计算损失函数对于卷积层输出的梯度: 首先,根据损失函数的定义,计算损失函数对于卷积层输出的梯度。这个梯度可以通过使用链式法则从后一层传播过来的梯度计算得到。 2. 计算损失函数对于卷积层权重的梯度: 使用卷积操作的性质,将损失函数对于卷积层输出的梯度与输入数据进行卷积操作,得到损失函数对于卷积层权重的梯度。 3. 计算损失函数对于卷积层输入的梯度: 使用卷积操作的性质,将损失函数对于卷积层输出的梯度与卷积层权重进行卷积操作,得到损失函数对于卷积层输入的梯度。 4. 计算损失函数对于卷积层偏置的梯度: 将损失函数对于卷积层输出的梯度按照通道求和,得到每个通道的梯度,即损失函数对于卷积层偏置的梯度。 以上是卷积层反向传播推导的基本步骤。在实际应用中,还需要考虑批量处理、激活函数等因素。如果你对某个具体的CNN模型或者反向传播的细节有更具体的问题,可以告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值