Deep learning 用于不同长度输入序列预训练的LSTM自动编码器

Deep learning 用于不同长度输入序列预训练的LSTM自动编码器,deep-learning,keras,recurrent-neural-network,sequences,autoencoder,Deep Learning,Keras,Recurrent Neural Network,Sequences,Autoencoder,我需要一些帮助来理解用深度学习解决问题的最佳方法是什么。 我的数据库中有许多未标记序列和一些标记序列。 我想检索每个带标签序列的标签。 序列有不同的长度,通常很长。 到目前为止,我一直在考虑做以下工作: 使用LSTM自动编码器作为“预训练步骤”,学习使用未标记数据的序列的简化表示 使用相同的模型对标记序列进行编码 使用另一个模型从简化表示中检索标记数据(LSTM、SVM等) 我的问题是: 如何处理不同长度的序列? 到目前为止,我已经为自动编码器部分尝试了以下方法(使用Keras后端Theano)

我需要一些帮助来理解用深度学习解决问题的最佳方法是什么。 我的数据库中有许多未标记序列和一些标记序列。 我想检索每个带标签序列的标签。 序列有不同的长度,通常很长。 到目前为止,我一直在考虑做以下工作:

  • 使用LSTM自动编码器作为“预训练步骤”,学习使用未标记数据的序列的简化表示

  • 使用相同的模型对标记序列进行编码

  • 使用另一个模型从简化表示中检索标记数据(LSTM、SVM等)

  • 我的问题是:

    如何处理不同长度的序列?

    到目前为止,我已经为自动编码器部分尝试了以下方法(使用Keras后端Theano):

    在填充了我的序列之后。 但我不确定这样做是否合适,因为我的测试数据(标记序列)可能比列车数据的最长序列(未标记序列)长

    没什么可说的,所有这些对我来说都是全新的,在看了很多文章/论坛之后,我有点迷路了。我也不确定这是处理此类问题的最佳方式


    任何帮助都将不胜感激。谢谢。

    您可以将LSTM的输入形状设置为(无,2),让Keras动态决定序列长度。这可能与您有关:谢谢您的回复!但如果我使用(无,2)作为输入_形状,我想我不能使用RepeatVector,对吗?或者我应该向这个函数传递什么参数?
    model = Sequential()
    model.add(Masking(mask_value=0, input_shape=(None,2)))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2)))
    model.add(RepeatVector(8785))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(LSTM(32, input_shape = (8785,2), return_sequences = True))
    model.add(TimeDistributed(Dense(2)))