【问题标题】:Giving input of different sizes to LSTM model in keras在keras中为LSTM模型提供不同大小的输入
【发布时间】:2017-06-29 05:26:14
【问题描述】:

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

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

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

【问题讨论】:

  • 您希望如何适应 3D 张量 1000x3m 1500x3、1200x3 和 2000x3 矩阵?序列没有共同的持续时间。

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


【解决方案1】:

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

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]

【讨论】:

  • 使用遮罩层应该避免不得不调整损失!
猜你喜欢
  • 2018-10-16
  • 2020-11-15
  • 1970-01-01
  • 2017-07-27
  • 2019-07-27
  • 2019-12-23
  • 2019-08-07
  • 1970-01-01
  • 2020-06-26
相关资源
最近更新 更多