多对一 RNN 中的批量大小、时期和迭代

Batch size, Epoch, and iteration in a many-to-one RNN

当涉及到多对一 RNN 时,我主要无法定义批量大小。

我一直在看下面的文章:https://medium.com/@erikhallstrm/hello-world-rnn-83cd7105b767

这是在多对多RNN上,但是batch的定义还是让我很困惑。

多对一 RNN 的批量大小是多少?

这可能会回答我关于纪元和迭代的另外两个困惑。

在您 link 的示例中,序列是形状为 (N,) 的向量,因为序列包含 N 个二进制数。

如果构成序列的项目不是数字,而是向量,则每个序列的形状将是 (N, item_size)

RNN 同时并行处理多个序列。这就是我们所说的批处理。并行处理的序列数为 batch_size,RNN 的输入形状将为 (batch_size, N).

在多对一场景下,batch size是一样的。唯一改变的是输出形状,因为不是生成大小为 (batch_size, N) 的输出,而是 (batch_size,)(或 (batch_size, 1)),因为每个序列都将映射到单个输出。

总结一下,batch size就是并行处理的序列数,所以多对多和多对一的情况没有区别。

关于您对 epoch/iteration 的混淆,epoch 通常是指对整个训练数据集进行一次迭代,而 iteration指的是处理一个批处理做一个SGD步骤。