在keras中为LSTM模型提供不同大小的输入

时间:2017-06-29 05:26:14

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

我在keras中有一个多类(4级)分类模型,看起来像1

在训练时,模型期望输入形状为(None,None,300)。也就是说,如果存在'n'个不同的输入序列,则输入形状应为(n,None,300)。在我的例子中,每个输入序列的大小是不同的。 比如,输入序列具有形状(1000,300),(1500,300),(1200,300)和(2000,300)。现在我需要将它们放在一起(4,无,300)。我尝试使用numpy数组,但是numpy数组不会给出(4,None,300)的形状,而是(4L,)。

现在我想知道如何训练我的模特?是否可以使用numpy数组或任何不同的数据结构?

1 个答案:

答案 0 :(得分:0)

由于您的序列持续时间不同,您可以考虑用零填充它们(相应地调整损失/标签)然后

max_duration = 2000
in_ = np.zeros((4, max_duration, 300), dtype='f4')
for i in xrange(4):
    # fit sequence
    in_[i,:len(seq[i]),:] = seq[i]