【问题标题】:Can we use 1D convolution for image classification?我们可以使用一维卷积进行图像分类吗?
【发布时间】:2021-03-06 00:14:47
【问题描述】:

我有形状为 (100, 100, 3) 的图像,我想使用 keras 1D convolution 对图像进行分类。 我想知道这是否可能,以及我需要使用的输入的形状是什么。

PS:我使用tf.data.Dataset,我的数据集是批处理的(20、100、100、3)。

【问题讨论】:

  • 你可以,但你有充分的理由吗?我想一维卷积过滤器将无法在图像的情况下构建非常有趣的模式。无论如何,您需要做的就是将图像重塑为 1d conv 预期的格式。 - 您需要将宽度和高度尺寸合二为一。

标签: python tensorflow keras conv-neural-network


【解决方案1】:

我们应该使用一维卷积进行图像分类吗?

TLDR; 不是单独的,但可能是组合的。

图像中像素之间的相关性(无论是 2D 还是 3D,由于多个通道)具有空间性质:给定像素的值受到垂直和水平相邻像素的高度影响。 2D/3D 卷积(Conv2DConv3D)的优势在于它们设法在两个空间方向(垂直和水平)上捕捉到这种影响。

相比之下,一维卷积或Conv1D 仅捕获两种相关性(垂直或水平)之一,因此产生的信息更加有限。就其本身而言,单个Conv1D 将遗漏大量信息。

尽管如此,由于 Conv2D 可以“分解”为两个 Conv1D 块(这类似于 MobileNet 架构中的 Pointwise 和 Depthwise 卷积),连接一个 Vertical Conv1D 和一个水平Conv1D 捕获两个轴上的空间相关性。这是对图像分类的有效方法,可替代Conv2D

我们可以使用一维卷积进行图像分类吗?怎么样?

是的,我们可以。

您应该重塑数据以减小尺寸:如果这样做,您会将图像的一端(如果垂直应用 Conv1D,则说顶部)与另一端(说底部),这打破了空间的连贯性。

这是一个关于如何(实现上述连接)的可能示例:

import tensorflow as tf
x = tf.random.normal(input_shape = (20, 100, 100, 3)) # your input batch

# Horizontal Conv1D
y_h = tf.keras.layers.Conv1D(
filters=32, kernel_size=3, activation='relu', input_shape=x.shape[2:])(x)

# Vertical Conv1D
y_v = tf.transpose(x, perm=[0, 2, 1, 3]) # Image rows to columns
y_v = tf.keras.layers.Conv1D(
   filters=32, kernel_size=3, activation='relu', input_shape=x.shape[2:])(x)
# y_v = tf.transpose(y_v, perm=[0, 2, 1, 3]) # Undo transpose, optional

# Concatenate results
y = tf.keras.layers.Concatenate(axis=3)([y_h, y_v]) # Concatenate on the feature_maps

请注意,您需要多次操作才能获得结果(垂直和水平轴上的卷积),直接应用Conv2D 会更容易、更快捷地获得。

我们什么时候应该使用这个?

如果您的图像数据在一个轴上特别缺乏信息,而在另一个空间轴上却特别有趣,那么这可能是一个值得探索的想法。否则最好使用标准的Conv2D(大多数情况下,包括几乎所有公共图像数据集)。

【讨论】:

    【解决方案2】:

    我假设您的意思是跨层卷积图像的 1x1 卷积。在您的情况下,图层代码将是:

    tf.keras.layers.Conv2D(filters=NUM_FILTERS, kernel_size=1, strides=1)
    

    正如@MatusDubrava 指出的那样,Conv1D 确实适用于一维数据处理(如声音)。

    【讨论】:

    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 2021-08-04
    • 2020-05-11
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多