CNN中卷积池化层tensorflow内置函数参数的实际含义及作用

这篇博客总结了在TensorFlow中搭建CNN模型时,卷积层(conv2d)、池化层、flatten和dropout中参数的实际含义和作用。卷积层参数包括input、filter、strides和padding,其中卷积核的大小、数量和通道关系密切。池化层通常用于降维和保持不变性。dropout用于防止过拟合。文章还探讨了全连接层、扁平化层和输出层的作用,以及它们在模型训练中的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间亲手搭建了CNN模型,使用tensorflow的许多内置函数时其中的参数数值都是借鉴别人的配置,对其中道理并不了解。昨天和mentor sync的时候真的觉得好惭愧,知其然不知其所以然一问就尴尬==这篇文章总结一下这些参数的含义和设置吧~

1. 卷积层和input的channel

在CNN中,想搞清楚每一层的传递关系,主要就是 height,width 和 channels 的变化情况。

首先看内置函数conv2d(卷积层)

conv2d

其中input是输入, filter是卷积核

input : [batch, in_height, in_width, in_channels] , 
filter : [filter_height, filter_width, in_channels, out_channels] 

因为进行计算的时候是卷积核和input的部分tensor进行卷积,所以input.in_channel === filter.in_channels。看一下图示:

假设现有一个为 6×6×3 的图片样本,使用 3×3×3 的卷积核(filter)进行卷积操作。此时输入图片的 channels 为 3(stride=1) ,而卷积核中的 in_channels 与 需要进行卷积操作的数据的 channels 一致(这里就是图片样本,为3)。卷积操作,卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行,最终得到 4×4 的结果。步骤完成后,由于只有一个卷积核,所以最终得到的结果为 4×4×1 , out_channels 为 1。所以out.channel就是卷积核的数量,一般都会使用不止一个卷积核(我的理解是分别投影到不同的空间,可以防止单核的过拟合,下面讲feature map的作用会分析)。

cnn

图一

å个å·ç§¯æ ¸

图二

总结一下,把上面提到的 channels 分为三种:

  • 最初输入的图片样本的 channels ,取决于图片类型,比如RGB;
  • 卷积操作完成后输出的 out_channels ,取决于卷积核的数量。此时的 out_channels 也会作为下一次卷积时的卷积核的 in_channels
  • 卷积核中的 in_channels ,刚刚2中已经说了,就是上一次卷积的 out_channels ,如果是第一次做卷积,就是1中样本图片的 channels 。
  • 最后,对于输入样本,一般的RGB图片,channels数量是 3 (红、绿、蓝);而monochrome图片,channels 数量是 1 。

2. filter, feature map以及如何实现权值共享

CNN之所以适合进行图像处理原因之一是它解决了传统NN的指数爆炸权重的计算问题,解决方式就是在同一个featur e马屁中可以权重共享。所谓的feature map,就是同一个卷积核和input卷积的结果。如图二只有一个卷积核,最后卷积的4*4matrix就是一个feature map,  fe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值