在keras中为LSTM模型提供不同大小的输入
Giving input of different sizes to LSTM model in keras
我在 keras 中有一个 multi-class(4-class) classification 模型,看起来像 1
训练时,模型期望输入形状为 (None,None,300)。也就是说,如果有'n'个不同的输入序列,那么输入的shape应该是(n,None,300)。在我的例子中,每个输入序列的大小是不同的。
例如,输入序列的形状为 (1000,300)、(1500,300)、(1200,300) 和 (2000,300)。现在我需要将它们放在一起为 (4,None,300)。我尝试使用 numpy 数组,但 numpy 数组不会给出 (4,None,300) 的形状,而是 (4L,).
现在我想知道如何训练我的模型?是否可以使用 numpy 数组或任何不同的数据结构可用?
由于您的序列具有不同的持续时间,您可以考虑用零填充它们(相应地调整 loss/labels),然后
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]
我在 keras 中有一个 multi-class(4-class) classification 模型,看起来像 1
训练时,模型期望输入形状为 (None,None,300)。也就是说,如果有'n'个不同的输入序列,那么输入的shape应该是(n,None,300)。在我的例子中,每个输入序列的大小是不同的。 例如,输入序列的形状为 (1000,300)、(1500,300)、(1200,300) 和 (2000,300)。现在我需要将它们放在一起为 (4,None,300)。我尝试使用 numpy 数组,但 numpy 数组不会给出 (4,None,300) 的形状,而是 (4L,).
现在我想知道如何训练我的模型?是否可以使用 numpy 数组或任何不同的数据结构可用?
由于您的序列具有不同的持续时间,您可以考虑用零填充它们(相应地调整 loss/labels),然后
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]