Tensorflow Multi-GPU丢失

时间:2019-02-14 11:05:54

标签: python tensorflow multi-gpu

我正在研究如何在Tensorflow上实施多GPU培训。 现在,我按照文档中的建议阅读this source。 据我了解,在第178行,可变损失仅说明了一个GPU的损失(如评论所述)。因此,在周期的末尾,例如第192行,损失将保留所考虑的最后一个GPU的损失值。 可变损失直到传递给Session.run()进行计算后,才在第243行使用。 因此,在第255行打印的损失值仅是最后一个GPU的损失,而不是总数。 在我看来,Google工程师这么简单的事情弄错了,我想念的是什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

似乎您没有丢失任何东西。他们认为打印损失值并报告一塔的摘要就足够了。

通常,当您开始在多个GPU上使用新模型时,您会跟踪每个GPU的损耗/汇总和/或仅计算平均损耗以进行调试。之后,仅跟踪一个塔就足够了,因为每个塔都包含相同的模型副本。

顺便说一句,我发现使用reprex_list %>% bind_rows(.id = "species") tf.estimators来分发模型和优化器,更容易使用tf.contrib.estimator.replicate_model_fn(...)进行多GPU训练。