gpt4 book ai didi

python - Tensorflow 多 GPU 重用与复制?

转载 作者:行者123 更新时间:2023-11-28 19:03:15 25 4
gpt4 key购买 nike

要在多个 GPU 上训练模型,可以在第一个 GPU 上创建一组变量并重复使用它们(通过 tf.variable_scope(tf.get_variable_scope(), reuse=device_num != 0))在其他 GPU 上,如 cifar10_multi_gpu_train .

但我遇到了 official CNN benchmarks在本地复制设置中,他们为每个 GPU 使用新的变量范围(通过 tf.variable_scope('v%s' % device_num))。由于所有变量都是随机初始化的,post init op用于将值从 GPU:0 复制到其他值。

这两种实现然后在 CPU 上平均梯度并反向传播结果(至少我是这么认为的,因为基准测试代码是神秘的:))——可能导致相同的结果。

这两种方法之间有什么区别,更重要的是什么更快?

谢谢。

最佳答案

不同之处在于,如果您要重复使用变量,则每次迭代都会从变量的原始位置向所有 GPU 广播变量,而如果您要复制变量,则不需要此广播,因此不共享应该会更快。

p>

不共享的一个缺点是,某处的错误或数值不稳定更容易导致不同的 GPU 最终为每个变量提供不同的值。

关于python - Tensorflow 多 GPU 重用与复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50277910/

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