Tensorflow LSTM批大小和序列长度如何影响内存
我有一个关于批量大小和序列长度的问题。假设我有10个不同的独立时间序列,每个长度为100 5个是一个人在做一项活动,另外5个是一个人在做另一项活动 我想创建一个LSTM,它能够记住每个序列中第一个样本的所有序列,并对输入到一个活动或另一个活动中的测试样本进行分类 现在,第一次尝试,假设我可以输入长度为100的测试样本。我该怎么做?我会创建一个LSTM,然后一次性输入[10100,1]形状的数据吗?或者我会把这个形状的数据[1100,1]输入10次吗?这里的问题是,批处理是否会影响LSTM如何记忆过去的输入?我不希望LSTM在独立序列之间记住,但我希望它从每个时间序列的开始就一直记住Tensorflow LSTM批大小和序列长度如何影响内存,tensorflow,machine-learning,lstm,rnn,Tensorflow,Machine Learning,Lstm,Rnn,我有一个关于批量大小和序列长度的问题。假设我有10个不同的独立时间序列,每个长度为100 5个是一个人在做一项活动,另外5个是一个人在做另一项活动 我想创建一个LSTM,它能够记住每个序列中第一个样本的所有序列,并对输入到一个活动或另一个活动中的测试样本进行分类 现在,第一次尝试,假设我可以输入长度为100的测试样本。我该怎么做?我会创建一个LSTM,然后一次性输入[10100,1]形状的数据吗?或者我会把这个形状的数据[1100,1]输入10次吗?这里的问题是,批处理是否会影响LSTM如何记忆
第二,假设我现在想把我用来训练LSTM的序列分块。目标与以前一样。现在我把序列分为10块。对于每个序列,我是否以[10,10,1]的形式输入它?如果我这样做,LSTM会从一开始就记住序列的时间动态吗?以这种方式进行LSTM是否类似于不将序列分块并完整输入?我可以回答你问题中与批处理有关的部分。批处理有两个原因
实际上,使用更大的批量是非常困难的!这是一个很大的误解。使用大型迷你批处理的主要原因是,批处理后只需更新一次,而不是针对每个样本,这节省了一些计算时间。此外,SGD的整个要点是使用样本中的“噪声”,以允许更大范围的可能解决方案。此外,批处理的主要计算优势仅在GPU上处理时可见,在GPU上,您必须在每次重量更新后进行复制。