CNN 可以与 3d 数据集一起使用吗

数据挖掘 机器学习 Python 深度学习 喀拉斯
2022-03-06 22:06:20

我的数据集是一个 20 列 100,000 行的简单表格。它不是 CNN 中常用的图像数据。在这种情况下我应该提供什么输入形状?

现在我做到了——

input_shape = (21,109713,1)

model.add(Conv2D(32, kernel_size=(5, 5), strides=(1, 1),
                 activation='relu',
                 input_shape=input_shape))

这给出了错误-

ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (109713, 19)
2个回答

标题中的问题与问题正文不一致。如果您打算使用 CNN,尽管它不是此类数据的最佳主意,那么对于您描述的数据集,一维 CNN 架构将是最合适的。

要回答标题中的问题,是的,3D CNN 肯定是可能的,并且实际上通常用于 3D 数据,例如:视频(第 3 维是时间)、3D 医学图像等。

您描述的数据集中的实例是一个包含 20 个实例的向量。该数据是一维结构。因此,您可以使用此处描述的 1D CNN

但是,最好将 DNN 用于此类数据结构。作为 CNN,本质上是相邻特征的互相关。在这种情况下,不能假设您的数据在相邻要素之间具有这种相似性。DNN 将允许更有效地捕获远处特征之间的互相关。

添加到 JahKnows 的答案中,如果您的数据代表时间进展,则使用 1D-CNN 可能是一个好主意(但也许您也可能考虑使用 RNN),否则您可能应该坚持使用 DNN。