【发布时间】:2017-04-23 01:54:57
【问题描述】:
我一直在使用 cifar10_multi_gpu_train 示例中提出的训练方法进行(本地)多 GPU 训练,即创建几个塔然后平均梯度。但是,我想知道以下问题:如果我只是将来自不同 GPU 的损失计算出来,将它们相加,然后将梯度下降应用于新的损失,会发生什么。
这行得通吗?可能这是一个愚蠢的问题,并且在某个地方必须有一个限制。如果你能对此发表评论,我会很高兴。
感谢和最好的问候, G.
【问题讨论】:
-
交换梯度和平均操作的顺序在数学上是等价的(微分是线性算子)。但是,问题是您希望塔
i操作的梯度操作与塔i在同一设备上。有colocate_gradients_with_ops选项,不知道效果如何,但在写cifar10_multi_gpu_train的时候还不存在。
标签: machine-learning tensorflow gpu