【问题标题】:MNIST Tensorflow exampleMNIST TensorFlow 示例
【发布时间】:2017-03-31 18:31:59
【问题描述】:
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')

这是来自 Tensorflow 网站上 Deep MNIST for experts 教程的代码。

我有两个问题:

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

2) 如果我们在尺寸 1 上迈出一大步。为什么我们需要一个包含 4 个值的向量,一个值不够吗?

strides = [1]

3) 如果 padding = 'SAME' 为什么图像尺寸会减少一半? (从第一个卷积过程中的 28 X 28 到 14 X 14 )

【问题讨论】:

    标签: python-3.x tensorflow mnist


    【解决方案1】:
    1. 我不确定您在这个问题中指的是哪个文档。 maxpool 窗口确实是 2x2。

    2. 步长可能因尺寸而异。 4 向量是最常见的情况,假设您想跳过批次中的图像,跳过不同的高度和宽度,甚至可能基于通道跳过。这几乎没有使用,但一直留在里面。

    3. 如果您在每个方向上的步幅为 2,那么您将跳过可能用于最大池化的所有其他像素。如果将跳过大小设置为 [1,1,1,1] 且填充相同,那么您确实会返回相同大小的结果。填充“SAME”是指对图像进行零填充,以便为图像添加一个高度为内核高度的边框和一个大小为内核宽度的宽度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2016-12-01
      • 2016-02-13
      • 2016-10-09
      • 2016-02-16
      • 1970-01-01
      相关资源
      最近更新 更多