【问题标题】:Number of input channels for convolutional network卷积网络的输入通道数
【发布时间】:2017-05-16 22:33:13
【问题描述】:

我正在关注 TensorFlow 的“Deep MNIST for Experts”教程:https://www.tensorflow.org/tutorials/mnist/pros/

第二个卷积层的形状为[5, 5, 32, 64];也就是说,它有 32 个输入,而第一个卷积层有 1 个输入(该输入是我理解原始图像的灰度值)。

第二个卷积层有32个输入通道是什么意思?这是否意味着在第二层学习的 64 个过滤器将全部应用(移动)到每个像素有 32 个点的“虚拟”图像(这个“虚拟”图像由每个过滤器学习到的原始图像组成第一步已应用)?如果我之前所说的正确,您如何将 2D 5x5 过滤器应用于每个像素具有 32 个点/值的图像?

【问题讨论】:

  • 我怎么理解你的问题,我不认为 SO 是解决此类问题的最佳场所,请尝试数据科学

标签: python machine-learning tensorflow


【解决方案1】:

第一个卷积层的权重如下:

W_conv1 = weight_variable([5, 5, 1, 32])

这里5x5是补丁大小1是输入通道数,32是输出通道数。所以在第一次卷积之后,输出有 32 个通道,因此第二个卷积层的权重矩阵的形状有32 输入通道。

【讨论】:

  • 所以你的意思是就像一个彩色图像有三个通道(RGB),第一个卷积之后的通道有 32?我们如何将 5x5 滤波器矩阵与具有 32 个通道的图像的 5x5 部分相乘? (或者更简单地说,图像具有多个通道)。
  • “所以你的意思就像彩色图像有三个通道 (RGB),第一个卷积之后的通道有 32 个?”确切地。 “我们如何将 5x5 滤波器矩阵与具有 32 个通道的图像的 5x5 部分相乘?”想象一下,你有一个 5x5x32 的过滤器。你将它与图像的corresponding 补丁相乘,然后将所有值相加得到一个标量。在这里,您的权重矩阵的尺寸为 [5, 5, 32, 64],这意味着图像的每个补丁都有 64 个这样的过滤器,这将为您提供 64 个标量。如果您对整个图像执行此操作,您将获得具有 64 个通道的新图像。希望澄清
  • @TheMyth 准确地说,我们会得到每个补丁而不是每个图像 64 个通道,对吗?我假设卷积是通过以每个输入像素为中心的补丁来完成的,因此该层的输出神经元的数量将是图像大小 * 图像大小 * 64?
猜你喜欢
  • 2021-06-07
  • 1970-01-01
  • 2015-02-27
  • 2016-10-20
  • 1970-01-01
  • 2018-06-07
  • 2019-02-02
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多