神经网络基本概念 (输入、卷积、池化、padding、激活、输出) -- 025

微信公众号:python宝
关注可了解更多的python相关知识。若有问题或建议,请公众号留言;

内容目录

一、输入层(训练数据)二、卷积层、卷积和池化的padding1、padding的理解2、卷积padding3、池化padding4、filter和kernel介绍5、权值共享三、池化层、最大值池化与均值池化的区别四、激活层五、全连接

一、输入层(训练数据)

  CNN必须将4D数组作为输入。因此,输入数据的形状为(batch_size,height,width,depth),其中第一维表示图像的batch大小,其他三个维表示图像的各个属性,即高度,宽度和深度。深度就是色彩通道的数量。例如,RGB图像的深度为3,而灰度图像的深度为1。
  输入矩阵格式(四个维度)::样本数、图像高度、图像宽度、图像通道数

二、卷积层、卷积和池化的padding

  卷积是从输入图像中提取特征的第一层,Conv层的目标是提取输入数据的特征。卷积通过使用小方块输入数据学习图像特征来保持像素之间的关系。

  Tensorflow中使用tf.nn.conv2d()函数来实现卷积时的输入,其格式如下:

tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=None,name=None)
  • input:指定需要做卷积的输入图像,它要求是一个Tensor,具有[batch,in_height,in_width,in_channels]这样的形状(shape),具体含义是"训练时一个batch的图片数量,图片高度,图片宽度,图片通道数",注意这是一个四维的Tensor,要求类型为float32或者float64.

  • filter:相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height,filter_width,in_channels,out_channels]这样的shape,具体含义是"卷积核的高度,卷积核的宽度,图像通道数,滤波器个数",要求类型与参数input相同。有一个地方需要注意,第三维in_channels,就是参数input中的第四维。

  • strides:卷积时在图像每一维的步长,这是一个一维的向量,长度为4,与输入input对应,一般值为[1,x,x,1],x取步长。

  • padding:定义元素边框与元素内容之间的空间。string类型的量,只能是"SAME"和“VALID”其中之一,这个值决定了不同的卷积方式。

  • use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认是True.

  • name:指定名字

  • 该函数返回一个Tensor,这个输出就是常说的feature map。

注意:在卷积核函数中,padding参数最容易引起歧义,该参数仅仅决定是否要补0,因此一定要清楚padding设置为SAME的真正意义。在设SAME的情况下,只有在步长为1时生成的feature map才会与输入大小相等。

  卷积操作过程其实很简单,也就是将卷积核与数据对应相乘,然后求和。剩下的都是些重复性操作,而整个卷积过程的输出便是这每一小小步产生结果的组合了。(卷积在此其实就是内积,步骤很简单,就是根据多个一定的权重(即卷积核),对一个块的像素进行内积运算,其输出就是提取的特征之一࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值