【问题标题】:Should I use a 2D or 3D convolution for a 3D grayscale image?我应该对 3D 灰度图像使用 2D 还是 3D 卷积?
【发布时间】:2019-11-17 03:46:19
【问题描述】:

我正在处理一个 TFRecord 数据集,该数据集由 3D 对象横截面的多个灰度图像组成,最终得到形状 [32、256、256]。 32的维度代表横截面的数量,它明显小于其他维度。

因此,我想知道是否可以将数据视为具有 32 个通道的 2D 数据,而不是将数据视为具有一个通道的 3D 数据,尤其是在所需的计算资源方面有帮助。我现在在 Google Colab 中将 TensorFlow 与 TPU 一起使用,使用 tf.layers.conv2d 而不是 tf.layers.conv3d 会因更少的填充而节省大量内存。

这两种方法之间是否有任何显着差异,或者我应该遵循什么约定?使用conv2d 会以任何方式损害我的准确性吗?

【问题讨论】:

  • 认为这完全取决于您的问题。所以你说你有多个灰度图像。可以将 3D 对象视为一个实体(即通道完全独立)吗?例如,3D 卷积用于 LIDAR 数据,因为它是 3D 数据。希望这会有所帮助。

标签: tensorflow machine-learning conv-neural-network tpu


【解决方案1】:

卷积层相对于完全连接的 2D 层的主要优势之一是权重是 2D 区域的局部权重,并且在所有 2D 位置(即过滤器)上共享。这意味着即使图像中的判别模式出现多次或出现在不同的位置,它也会被学习一次。 IE。它对翻译有些不变。

对于 3D 信号,您需要确定是否需要滤波器输出对深度保持不变,即判别特征可能出现在图像中的任何一个或多个深度,或者如果特征的深度位置是相对固定的。前者需要 3D 卷积,后者则可以使用具有大量通道的 2D 卷积。

例如(编造这个 - 我没有研究过这个),假设您对某人的肺部进行了 3D 扫描,并且您正在尝试分类是否存在肿瘤。为此,您需要 3D 卷积,因为表示“肿瘤”的过滤器组合需要对该肿瘤的 X、Y 和 Z 位置保持不变。如果在这种情况下使用 2D 卷积,则训练集必须具有所有不同 Z 位置的肿瘤样本,否则网络将对 Z 位置非常敏感。

顺便说一句:带有 LSTM 的 CNN 是另一种处理 3D 数据的方法。

【讨论】:

  • 我正在分析单元格的 3D 模型,但我将所有单元格都集中在 z 维度或 32 维度中。但是,居中可能并不完美,并且可能存在跨单元格的特征z 维度,需要对 z 位置保持不变。我将继续使用 3D 卷积来增加潜在的准确性和普遍性。感谢您的洞察力!
  • 哦,太好了。这可能会有所帮助:eraldoribeiro.github.io/project/pollen。它适用于花粉粒,但应该是相似的。
猜你喜欢
  • 2020-05-26
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 2018-05-02
相关资源
最近更新 更多