如何在tf.ConditionalAccumulator()

时间:2018-01-29 06:41:48

标签: tensorflow

我希望实现在多个backward()操作之后执行forward()的函数,以便增加具有有限GPU内存的实际batch_size。所以我来到tf.ConditionalAccumulator

tf.ConditionalAccumulator().apply_grad()的论证中,有一个论证local_step,我不明白如何任命。该文件解释如下:

  

尝试将渐变应用于累加器。

     

如果渐变是陈旧的,则会以静默方式删除该尝试,即local_step小于累加器的全局时间步长。

     

参数数量:

     

grad:要应用的渐变张量。

     

local_step:计算渐变的时间步。

     

name:操作的可选名称。

我尝试搜索tf.CondionalAccumentor().apply_grad()的实现,但没有找到成员变量引用global_time_step。根据我的理解,如果我们想在一次渐变更新之前累积10次,那么应该有十个渐变槽。 global_time_step用作指示符以指出应使用哪个插槽。如果local_step小于global_time_step,这意味着已使用相应的广告位,那么渐变是陈旧的,应该被丢弃。

在我的实现中,我为它分配了global_step变量,该变量用于记录训练过程中的梯度更新次数,并且在每次batch_size次迭代中增加一次,因此它增加一次batch_size示例前进。我不确定我的实施是否正确。

我希望有人可以帮助解释tf.ConditionalAccumulator的机制。

0 个答案:

没有答案