【问题标题】:don't understand mnist example in tensorflow不理解 tensorflow 中的 mnist 示例
【发布时间】:2017-03-03 09:28:45
【问题描述】:

我不明白 Tensorflow 中“专家的深度 mnist”中的 mnist 示例。

为了构建一个深度网络,我们堆叠了几层这种类型。第二层将有每个 5x5 补丁的 64 个特征。

W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

我不知道为什么 outputchannel 是 64。

我认为我们需要对 64 个输出通道进行 32*2 * 5*5 过滤,所以

W_conv2 = weight_variable([5, 5, 32, 2])

首先,很抱歉我的英语不好 也许你很难理解我的要求 所以我',写sudo代码逻辑

inputimage = arr[1][28][28][32]
w_conv2 = arr[5][5][32][2]
output = [1][28][28][64]
for batch in 1
  for input in 32
    for output in 2
        output[][][][input*output] = conv(inputimage,w_conv2)

我认为它使用 32*2 过滤器制作 62 个输出功能并节省内存 哪一部分错了?

谢谢

【问题讨论】:

  • 看看this questionthis question你就会得到答案。
  • 首先,对不起,我的英语不好,也许你很难理解我的问题,所以我,写 sudo 代码逻辑 inputimage = arr[1][28][28][32] w_conv2 = arr[5][5][32][2] output = [1][28][28][64] for batch in 1 for input in 32 for output in 2 output[][][][input *output] = conv(inputimage,w_conv2) 我认为它使用 32*2 过滤器制作 62 个输出特征并节省内存 哪部分出了问题?谢谢
  • 你也可以看看我对一个非常相似的问题的回答here
  • 在你的回答中,特征的数量是多少(in_channels * out_channels)?

标签: tensorflow


【解决方案1】:

事实上,输出维度独立于输入维度。

实际上,卷积的每一步都是 W_conv2 (W) 和输入矩阵 (I) 的任何 (n * m) 部分之间的张量积:如果 W 的维度为 (n * m * k * h) 和 I (n * m * k),则乘积 I*W 是维度为h 的向量。

n, m, and k 在 I 和 W 中必须相等,但您对 h 没有任何限制。

【讨论】:

    【解决方案2】:

    它更大,因为您正在使用您的过滤器(5x5)并在每个输入数据的每个过滤器上使用它。所以它看起来像: 32*2*1(一个是因为你用的是一个滤镜)

    【讨论】:

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