【问题标题】:How to give the 1D input to Convolutional Neural Network(CNN) using Keras?如何使用 Keras 将一维输入提供给卷积神经网络(CNN)?
【发布时间】:2018-07-29 06:53:56
【问题描述】:

我正在使用 Keras 库解决卷积神经网络 (CNN) 的回归问题。我经历了很多例子,但未能理解一维卷积的输入形状的概念

这是我的数据集,1 个目标变量和 3 个原始信号。

为了可视化,这里显示了 5 段传感器信号,每个段都有自己的含义

我想将分段传感器值作为 1D 卷积层的输入,但问题是分段的长度可变。

这是我的 CNN 架构

我厌倦了构建我的 CNN 模型但很困惑

model = Sequential()
model.add(Conv1D(5, 7, activation='relu',input_shape=input_shape))
model.add(MaxPooling1D(pool_length=4))
model.add(Conv1D(4, 7, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))

那么,如何在 Keras 中为 CNN 的 Conv1D 提供输入?或者我应该将固定大小的输入设置为 Conv1D?但是怎么做?

【问题讨论】:

    标签: python neural-network deep-learning keras conv-neural-network


    【解决方案1】:

    我的理解是 input_shape 应该是 (time_steps, n_features),其中 time_steps 是段的长度(传感器信号的序列),n_features 是通道数(在您的情况下为 3 ,因为您有 3 个不同的传感器)。

    因此,网络的输入应该有 3 个维度(批次、步骤、通道),其中批次是不同的细分。

    我只使用了固定的 time_steps,如果你真的不能使用相同长度的段,你可以尝试用零填充它们。

    Keras Documentation 上,他们说您可以使用 (None, 3) 作为 3 维向量的可变长度序列的 input_shape,但我从未使用过这种方式。

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2018-01-24
      相关资源
      最近更新 更多