Deep MNIST for Experts解读(二):卷积与最大池化

本文深入探讨了卷积和最大池化的概念,通过Tensorflow提供的函数`conv2d`和`max_pool_2x2`进行解释。卷积运算涉及卷积核对输入数据进行滑动并计算每个位置的加权和。最大池化则是从卷积结果中选择每个区域的最大值,以减小数据尺寸。通过实例展示了卷积核的使用和最大池化的效果。

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

Deep MNIST for Experts解读(二):卷积与池化
https://www.tensorflow.org/get_started/mnist/pros


下面看看那三个遗留问题。


1.卷积
conv2d
max_pool_2x2
Tensorflow提供了两个卷积函数,tf.nn.conv2d和tf.nn.conv3d,并不适合拿来直接演示说明基本概念。
什么是卷积运算?
卷积的感性说明:https://www.zhihu.com/question/22298352
卷积的理性说明:http://blog.youkuaiyun.com/anan1205/article/details/12313593。
最直观的说明:http://ufldl.stanford.edu/wiki/index.php/%E5%8D%B7%E7%A7%AF%E7%89%B9%E5%BE%81%E6%8F%90%E5%8F%96 
的卷积的那个动图。
这里说明一下。
绿色矩阵为学习样本,橙色是一个小矩阵,称为卷积核,可以把它视为一个滑窗。用卷积核去覆盖样本矩阵,运算一次,得到一个值。
比如: 被卷积核第一次覆盖的子矩阵(绿色)是
[[1,1,1],
 [0,1,1],
 [0,0,1]],
卷积核(橙色)是:
[[1,0,1],
 [0,1,0],
 [1,0,1]]
对应坐标的值相乘,再各元素相加:
1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4,得到粉红色矩阵的第一个元素。
移动卷积核,依次得到粉红色矩阵的各个元素,这就是卷积运算。
下面来理解下mnist_deep.py中的conv2d。
def conv2d(x, W):
  """conv2d returns a 2d convolution layer with full stride."""
  return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
tf.nn.conv2d给了四个参数:
x:即输入input,格式为:[训练时一个batch的图片数量, 图片高度, 图片宽度, 输入通道数],
[batch, in_height, in_width, in_channels]
源码中的定义为:x_image = tf.reshape(x, [-1, 28, 28, 1]),也就是batch待定,图片是28*2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值