首页 文章

LSTM批量大小和序列长度如何影响内存

提问于
浏览
0

我有关于批量大小和序列长度的问题 . 假设我有10个不同的独立时间序列,每个时间序列长度为100 .

5是一个人从事一项活动,另外5人是从事另一项活动的人 .

我想创建一个LSTM,它能够记住每个序列中第一个样本的序列,并将我输入的测试样本分类为一个或另一个 .

现在,第一次尝试,假设我可以输入长度为100的测试样本 . 我该怎么做?我会创建一个LSTM,然后一次性输入形状[10,100,1]的数据吗?或者我会将形状[1,100,1]的数据输入10次?这里的问题是,批处理会影响LSTM记忆过去输入的方式吗?我不希望LSTM在独立序列之间记住,但我确实希望它从每个时间序列的开头一直记住 .

其次,让我们说我现在要把我用来训练LSTM的序列组合起来 . 目标与以前一样 . 所以现在我将序列分成10个块 . 我是否按照[10,10,1]为每个序列输入它?如果我这样做,LSTM会记住序列的时间动态一直到开头吗?以这种方式做LSTM是否类似于不对序列进行分块并将它们全长送入?

1 回答

  • 0

    我可以回答你的问题中与批处理有关的部分 . 批处理有两个原因 .

    • 计算机批量执行矩阵乘法更有效 . 如果你在CPU上做,那么部分效率来自于能够缓存矩阵而不必从内存重新加载它 . 在评估期间,批次中的序列不会相互干扰 . 它与每个单独计算的情况相同 .

    • 在训练期间,批量生成多个序列可降低渐变中的噪音 . 通过平均批次中所有序列的梯度来计算权重更新 . 具有更多序列可以更可靠地估计移动参数的方向,以便改善损失函数 .

相关问题