【问题标题】:Error when checking target: expected time_distributed_5 to have 3 dimensions, but got array with shape (14724, 1)检查目标时出错:预期 time_distributed_5 有 3 个维度,但得到了形状为 (14724, 1) 的数组
【发布时间】:2018-03-28 16:47:27
【问题描述】:

试图建立一个单一的输出回归模型,但最后一层似乎有问题

inputs = Input(shape=(48, 1))
lstm = CuDNNLSTM(256,return_sequences=True)(inputs)
lstm = Dropout(dropouts[0])(lstm)

#aux_input
auxiliary_inputs = Input(shape=(48, 7))
auxiliary_outputs = TimeDistributed(Dense(4))(auxiliary_inputs)
auxiliary_outputs = TimeDistributed(Dense(7))(auxiliary_outputs)

#concatenate
output = keras.layers.concatenate([lstm, auxiliary_outputs])

output = TimeDistributed(Dense(64, activation='linear'))(output)
output = TimeDistributed(Dense(64, activation='linear'))(output)
output = TimeDistributed(Dense(1, activation='linear'))(output)

model = Model(inputs=[inputs, auxiliary_inputs], outputs=[output])

我是 keras 新手...我收到以下错误

ValueError: 检查目标时出错:预期 time_distributed_5 有 3 个维度,但得到的数组形状为 (14724, 1)

【问题讨论】:

    标签: tensorflow neural-network keras lstm keras-layer


    【解决方案1】:

    你能提供更多关于你的问题的背景吗?测试数据或至少更多代码。你为什么首先选择这种架构?一个更简单的架构(只是 LSTM)可以解决问题吗?你在退步什么?使用线性激活函数堆叠多个 TimeDistributed Dense 层可能不会对模型增加太多。

    【讨论】:

    • 是的,你可能是对的。我可以只使用 LSTM,但它会给我带来令人满意的结果。 lstm 的输入是 48 个时间步长序列,我想预测下一个时间步长(第 49 个)。每个时间步都带有额外的数据 (48, 7) (7 个特征),这些数据通过辅助输入提供。我正在尝试将 lstm 的输出与辅助输出连接起来。
    【解决方案2】:

    好的,伙计们,我想我找到了解决办法 根据 - https://keras.io/layers/wrappers/ 它说我们正在对每个时间步应用密集层(在我的情况下,我有 48 个时间步)。因此,我最后一层的输出将是(batch_size、timesteps、尺寸):

    output = TimeDistributed(Dense(1, activation='linear'))(output)
    

    将是 (?,48,1) 因此尺寸不匹配。但是,如果我想将其转换为单一回归输出,我们将不得不展平最终的 TimeDistributed 层

    所以我添加了以下几行来修复它:

    output = Flatten()(output)
    output = (Dense(1, activation='linear'))(output)
    

    所以现在时间分布层扁平化为 49 个输入(看起来像包含偏置输入)到最终密集层成为单个输出。

    好的,代码工作正常,我得到了正确的结果(模型学习)。我唯一的疑问是在数学上是否可以将 TimeDistributed 层展平为简单的密集层以获得如上所述的结果?

    【讨论】:

      猜你喜欢
      • 2019-08-22
      • 2019-01-16
      • 2019-09-11
      • 2019-01-03
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 2019-03-25
      • 2019-03-02
      相关资源
      最近更新 更多