【问题标题】:Understanding the keras input_shape for Conv1D, Dense layers (1-dimensional input)了解 Conv1D 的 keras input_shape,密集层(一维输入)
【发布时间】:2020-12-03 08:43:27
【问题描述】:

伙计们!

我尝试在keras 中实现我自己的第一个 dl-net,这将是一个 自动编码器(希望去噪和堆叠)。但我对输入层的输入形状格式感到困惑,它可以是Conv1DDenseLayer(目前它是Dense 层,因为我希望这能解决问题) - 我也试过pytorch 但是这也没有解决我的问题。

根本问题是我觉得我没有得到输入形状参数及其结构。对于图像,您可以在互联网上找到很好且合乎逻辑的解释。但由于我使用一维数据,这些技术不能在这里应用——Dense/Conv1D API 也不能正确回答我的问题。

我有 7000 个样本,其中每个样本由 500 个整数组成的一维数组 表示,这不是额外的特征维度或属性 - 只是 一个通道 如果我理解正确的话。因此input_shape=(,500) 应该可以正常工作,因为我不必说明批量大小。 但它不起作用,我只是收到我传入的数据和形状不匹配的消息。

也许有人可以解决这个问题?也许我的输入数据形状不正确 - numpy 输入应该是什么样子?还是我的层配置错误

提前感谢您!我真的很想解决这个问题,并且已经尝试了几种重塑或输入形状定义 - 不幸的是,没有任何效果。

【问题讨论】:

    标签: python tensorflow keras reshape autoencoder


    【解决方案1】:

    您只是忘记了“渠道”维度。和图像一样,序列也可以有通道。

    例如你可以运行以下代码:

    import tensorflow as tf
    
    layer = tf.keras.layers.Conv1D(input_shape=(500,), kernel_size=3, filters=2)
    sample = tf.ones((1, 500, 1), dtype=tf.float32)  # (bs, input_shape, channels)
    
    out = layer(sample)  #  out.shape will be (1, 498, 2)
    

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2019-09-23
      • 2021-07-20
      • 2017-12-18
      相关资源
      最近更新 更多