Python 3.x MNIST张量流示例

Python 3.x MNIST张量流示例,python-3.x,tensorflow,mnist,Python 3.x,Tensorflow,Mnist,这是Tensorflow网站上教程中的代码 我有两个问题: 1) k-size是一个长度大于4的整数列表,表示最大池窗口的大小。考虑到这是一个2X2的窗口,这不应该是[2,2]吗?我是说为什么它是[1,2,2,1]而不是[2,2] 2) 如果我们在一号上迈出了一大步。为什么我们需要4个值的向量,一个值不够吗 def conv2d(x, W): return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') def max_po

这是Tensorflow网站上教程中的代码

我有两个问题:

1) k-size是一个长度大于4的整数列表,表示最大池窗口的大小。考虑到这是一个2X2的窗口,这不应该是[2,2]吗?我是说为什么它是[1,2,2,1]而不是[2,2]

2) 如果我们在一号上迈出了一大步。为什么我们需要4个值的向量,一个值不够吗

def conv2d(x, W):
  return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):
  return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                        strides=[1, 2, 2, 1], padding='SAME')
3) 如果padding='SAME',为什么图像大小会减少一半?(在第一个卷积过程中从28 X 28到14 X 14)

  • 我不确定您在这个问题中所指的是哪些文档。maxpool窗口实际上是2x2

  • 步长可以根据尺寸的不同而不同。4矢量是最常见的情况,假设您希望跳过批处理中的图像,跳过不同的高度和宽度,甚至可能基于通道跳过。这几乎没有被使用,但却被保留了下来

  • 如果沿每个方向的跨步为2,则跳过可能用于最大池的其他每个像素。如果将skip size设置为[1,1,1,1],且填充相同,则确实会返回相同大小的结果。padding“SAME”指的是对图像进行零填充,以便向图像添加高度为kernel hight的边框和大小为kernel width的边框

  • strides = [1]