【问题标题】:Tensorflow tutorial, convolutionTensorFlow 教程,卷积
【发布时间】:2017-10-17 06:50:13
【问题描述】:

所以我一直在研究 Tensorflow 并试图弄清楚一件事,我不知道我错过了什么。我正在查看来自https://www.tensorflow.org/versions/master/tutorials/layers 的教程,尤其是模型构建步骤:

  """Model function for CNN."""
  # Input Layer
  input_layer = tf.reshape(features, [-1, 28, 28, 1])

  # Convolutional Layer #1
  conv1 = tf.layers.conv2d(
      inputs=input_layer,
      filters=32,
      kernel_size=[5, 5],
      padding="same",
      activation=tf.nn.relu)

  # Pooling Layer #1
  pool1 = tf.layers.max_pooling2d(inputs=conv1, pool_size=[2, 2], strides=2)

  # Convolutional Layer #2 and Pooling Layer #2
  conv2 = tf.layers.conv2d(
      inputs=pool1,
      filters=64,
      kernel_size=[5, 5],
      padding="same",
      activation=tf.nn.relu)
  pool2 = tf.layers.max_pooling2d(inputs=conv2, pool_size=[2, 2], strides=2)

  # Dense Layer
  pool2_flat = tf.reshape(pool2, [-1, 7 * 7 * 64])

如果我理解正确,输入与 32 @ 5x5 过滤器进行卷积会创建 32 个特征图 @ 28x28 的输出。然后 max-pooled 将特征图减少到宽度和高度 = 14x14。

所以这是我要理解的问题,我们有 32 个 @ 14x14 的特征图,我们与另一组 64 个过滤器 @ 5x5 进行卷积。它应该产生 32*64=2048 大小为 14x14 的特征图吗?那么在重塑它时,我们应该在最后一个最大池化步骤之后使用 [-1,7*7*2048] 吗?或者 conv2 中的这个卷积是用 32 的深度完成的,过滤器的大小像 [5,5,32]?也许我错过了一些重要的理论或者只是盲目的;>

如果有人可以帮助我理解这一点,将不胜感激!

干杯!

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    您正在使用“相同”填充。

    If padding == "same"
        output_shape[i] = ceil(input_shape[i]/stides[i])
    If padding == "valid": 
        output_spatial_shape[i] = ceil((input_spatial_shape[i] - (spatial_filter_shape[i]-1) * dilation_rate[i]) / strides[i]).
    

    要获得您期望的行为,请使用填充“有效”。

    在这里查看 API:https://www.tensorflow.org/api_docs/python/tf/nn/convolution

    我希望这会有所帮助。

    【讨论】:

    • 啊好吧!那么它是如何与 padding = "same" 一起工作的,它对之前的特征图的深度有什么影响呢?
    • 它只是在特征图的边界上填充以获得输出形状。
    • 是的,我知道,但是在 pool1 之后,(在我的脑海中)我们应该有 32 个大小为 14x14(或 14 x 14 和深度为 32)的特征图。对于 conv2 中的单个过滤器(假设大小为 5x5),我们应该得到 32 个特征图,如果我们填充它将保持相同的大小。重复 64 个过滤器,我们有 2048 个地图。但显然不是:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2018-02-11
    • 2017-10-21
    • 2021-06-12
    相关资源
    最近更新 更多