数据并行对训练结果的影响

时间:2016-11-17 08:25:54

标签: machine-learning neural-network multiprocessing tensorflow deep-learning

我目前正在尝试使用Tensorflow网络实施多GPU培训。对此的一个解决方案是每GPU运行一个模型,每个模型都有自己的数据批次,并在每次训练迭代后组合它们的权重。换句话说就是“数据并行”。

因此,例如,如果我使用2个GPU,并行训练,然后将它们的权重组合起来,那么与在一个GPU上按顺序训练这两个数据批次相比,结果权重是否应该不同?因为两个GPU具有相同的输入权重,而单个GPU已经修改了第二批的权重。

这种差异是否只是边际,因此在多次迭代后与最终结果无关?

1 个答案:

答案 0 :(得分:2)

参加培训的批次顺序有所不同。但如果你有大量的批次,差异可能会很小。每个批次将模型中的变量略微拉向损失的最小值。不同的顺序可能使通向最小的路径略有不同。但只要损失减少,您的模型就会受到培训,其评估会变得越来越好。

有时,为了避免相同批次将模型“拉”到一起并避免仅对某些输入数据太好,每个模型副本的输入将在进入训练计划之前随机洗牌。