首页 文章

用于Keras中多变量时间序列的LSTM的可变输入

提问于
浏览
0

使用Keras,我想在一批大小N上训练RNN(带有LSTM单元),每个时间步长具有K个时间步长和大小为L的向量(解码器输出是大小为L的一个向量) .

可悲的是,我在使其适用于不同尺寸的时间步长时遇到麻烦,即对于不同的K.

有两个与此相关的问题:

  • 每当我尝试用numpy创建一个3D张量时,我得到类型:array(list(array()))而不是type:array(array(array())),因为我的第二个维度没有修复 . 得到的形状是(N,)而不是(N,-1,L)

  • 我发现填充是单变量时间序列的一种解决方案,但我有 L>>1 的每个时间步长L的向量 . 另外,(1)的形状不适合,即使我使用:

model.add(LSTM(50,input_shape =(N,None,L)))//对于不同的K没有

或者是每个批处理实例调用fit-method N次的唯一解决方案?

你有什么想法,如何解决我的问题?

任何指针将不胜感激 .

1 回答

  • 0

    您必须将数据数组填充到最大时间步长

    from keras.preprocessing import sequence
    
    data_array=sequence.pad_sequences(data_array,maxlen=max_K)
    

    也不要使用input_shape传递批量大小

    model.add(LSTM(50, input_shape=(max_K, L)))
    

相关问题