gpt4 book ai didi

optimization - Tensorflow 中的同步与异步计算

转载 作者:行者123 更新时间:2023-11-30 08:38:33 27 4
gpt4 key购买 nike

在 Tensorflow CIFAR 教程中,它讨论了使用多个 GPU 并给出了以下警告:

“天真地采用模型参数的异步更新会导致训练性能不佳,因为单个模型副本可能会在模型参数的过时副本上进行训练。相反,采用完全同步更新将与最慢的模型副本一样慢”

这是什么意思?有人可以提供一个非常简单的例子来说明这个警告吗?

最佳答案

假设你有 n 个 worker 。

异步意味着每个worker只是读取参数、计算更新并写入更新的参数,根本没有任何锁定机制。工作人员可以自由地覆盖彼此的工作。假设工作人员 1 由于某种原因运行缓慢。 Worker 1 在时间 t 读取参数,然后尝试在时间 t+100 写入更新的参数。与此同时,工作人员 2-n 在时间步 t+1、t+2 等处都完成了大量更新。当慢速工作人员 1 最终完成写入时,它会覆盖其他工作人员已取得的所有进度。

完全同步意味着所有工作人员都是协调的。每个工作人员读取参数,计算梯度,然后等待其他工作人员完成。然后,学习算法计算它们计算出的所有梯度的平均值,并根据该平均值进行更新。如果工作人员 1 非常慢并且需要 100 个时间步才能完成,但工作人员 2-n 都在时间步 2 上完成,那么大多数工作人员将花费大部分时间坐着等待工作人员 1。

关于optimization - Tensorflow 中的同步与异步计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com