我应该对3D灰度图像使用2D或3D卷积吗?

时间:2019-11-17 03:46:19

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

我正在使用TFRecord数据集,该数据集由3D对象横截面的多个灰度图像组成,最终形状为[32,256,256]。尺寸32代表横截面的数量,并且显着小于其他尺寸。

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

两种方法之间是否存在重大区别,或者我应该遵循哪些约定?使用conv2d会以任何方式损害我的准确性吗?

1 个答案:

答案 0 :(得分:1)

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

对于3D信号,如果需要滤波器输出不随深度变化,即需要辨别特征,即图像中任意一个或多个深度处都可能出现歧视性特征,或者特征的深度位置,则需要进行计算是相对固定的。前者需要3D卷积,而后者则可以摆脱带有许多通道的2D卷积。

例如(弥补这个问题-我还没有做这个),假设您对某人的肺部进行了3D扫描,并且您正在尝试对是否存在肿瘤进行分类。为此,您将需要3D卷积,因为代表“肿瘤”的滤镜组合必须对于该肿瘤的X,Y和Z位置都是不变的。如果在这种情况下使用2D卷积,则训练集必须在所有不同的Z位置上都有肿瘤的示例,否则网络将对Z位置非常敏感。

BTW:带有LSTM的CNN是另一种处理3D数据的方法。

相关问题