跨多个GPU镜像多GPU模型

2023-03-22
前端之家小编收集整理的跨多个GPU镜像多GPU模型内容,希望整理的这个开发编程问题跨多个GPU镜像多GPU模型能够快速解决!

代码问题

我有一个使用多个GPU进行计算的tensorflow(tf2.0)/ keras模型。模型中有2个分支,每个分支都在单独的GPU上。

我有一个要用于训练的4 GPU系统,我想对该模型进行镜像,以便GPU 1和2包含一个模型,GPU 3和4包含镜像的模型。

tf.distribute.MirroredStrategy会自动处理此镜像吗?还是假设我的模型将是单个GPU模型?

如果tf.distribute.MirroredStrategy无法解决这个问题,那么有人对如何自定义MirroredStrategy来实现这种培训结构有任何建议吗?

问题答案

这听起来很像您将需要进行自定义训练循环。 镜像策略会在每个GPU上复制模型,但是由于您的模型已经在两个GPU上就绪,因此我认为它无法正常工作。

但是您可以尝试一下,并使用nvidia-smi检查tensorflow在做什么。

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


是否可以将 Python 程序转换为 C/C++? 我需要实现几个算法,我不确定性能差距是否足以证明我在 C/C++ 中执行它时所经历的所有痛苦(我不擅长)).我想写一个简单的算法,并根……
我想使用 NTT 进行快速平方(请参阅快速 bignum 平方计算),但即使对于非常大的数字……超过 12000 位.
C++ 标准在 3.3.2声明点\"中包含一个半著名的令人惊讶\"名称查找示例: int x = x; 这用自身初始化 x,它(作为原始类型)未初始化,因此具有不确定的值(假设它是一个自动变……
以下代码: myQueue.enqueue(\'a\'); myQueue.enqueue(\'b\'); cout << myQueue.dequeue() << myQueue.dequeue();
据我所知,写时复制不是在 C++11 中实现符合标准的 std::string 的可行方法,但是当它最近在讨论中出现时,我发现我自己无法直接支持这种说法.