如何在小批量中累积渐变然后在Chainer中反向传播?

时间:2018-01-23 07:26:08

标签: chainer chainercv

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

  1. 由于GPU内存有限,我想在小批量累积渐变,然后平均渐变值,然后反向传播。

  2. 我需要知道如何在每个迷你批次中小批量而不是随机播放,因为我希望视频序列保持其顺序。

1 个答案:

答案 0 :(得分:0)

问题1: 你可以转发和后退每个小批量,但不会调用optimizer.update(),重复前进和后退对于必要的小批量向后,您可以根据累积的渐变调用 optimizer.update()进行更新。

如果您想使用trainer模块实现它,我认为您需要覆盖StandardUpdater以定义您自己的Updater类来执行上述操作。

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