我试图理解这个论点的作用,对于AdamOptimizer的方法的TF api文档compute_gradients
说如下 -
colocate_gradients_with_ops
:如果为True,请尝试使用相应的op进行渐变渐变.
但我不清楚.在这种情况下,colocating渐变意味着什么,所谓的op是什么?
colocate_gradients_with_ops = False(默认值):计算单个GPU上的渐变(最有可能/ gpu:0)
colocate_gradients_with_ops = True:并行计算多个GPU上的渐变.
更详细:
colocate_gradients_with_ops = False(默认)
仅计算并行预测,然后将计算的预测移动到参数服务器(cpu:0或gpu:0).并且通过预测,参数服务器(单个设备)计算整个批次的渐变(gpu_count*batch_size).
colocate_gradients_with_ops =真
将梯度计算放在与原始(前向通道)op相同的设备上.即,计算梯度以及每个特定GPU上的预测,然后将梯度移动到参数服务器以对它们求平均以获得总体梯度.
参考1 @mrry
参考2 @bzamecnik