3

我正在对视频序列进行分类,我需要两件事:

  1. 由于 GPU 内存有限,我想在 mini-batch 中累积梯度,然后平均梯度值,然后反向传播。

  2. 我需要知道如何在小批量之间随机播放,但不要在每个小批量内随机播放,因为我希望视频序列保持其顺序。

4

1 回答 1

0

问题 1:您可以对每个 minibatch 进行前向和后向操作,但不能调用 optimizer.update(),在对必要的 minibatch 重复前向和后向操作后,您可以调用optimizer.update()根据累积梯度进行更新。

如果你想用trainer模块来实现它,我认为你需要重写StandardUpdater来定义你自己的Updater类来做上面的事情。

问题2:您使用的是trainer模块吗?如果是这样,您可以定义自己的迭代器来实现这一点。有关如何定义迭代器类的参考,另请参见下文。

于 2018-02-20T12:44:38.687 回答