首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该连续或并行地运行训练过程吗?

我应该连续或并行地运行训练过程吗?
EN

Stack Overflow用户
提问于 2021-12-11 09:40:36
回答 2查看 76关注 0票数 -2

我有21个ANN训练过程要进行。

我手里有四台电脑。其中三个配备了GPU(每个GPU两个)。

在最少的时间内运行进程以激活培训的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-15 00:46:43

要明确地回答这个问题是不可能的。从方向上讲,你需要考虑的一些事情是:

你是否调整了你的模型,使其成为GPU而不是CPU的瓶颈?这是DL培训的最佳实践。

你有一套很好的训练超参数吗?通过适当的调整,你可以大大降低训练的速度,就像数量级一样。(在CIFAR10上进行34秒钟的V100训练就可以获得SOTA的性能。如果你在身边挠了几天,可能需要30分钟的训练才能得到SOTA的准确性)。

你有能力缩放批次大小吗?“76分钟内训练伯特”的论文讲述了一些技巧,从热身到一个新的优化器,基本上是LARS + Adam。

您有在一台机器上扩展到多个GPU的经验吗?一般来说,在TF2/Keras中没有那么难。你有升级到多台机器的经验吗?我还没有这么做,但我认为这有点困难。

如果您对上述所有内容都没有很大的信心,那么您最好同时运行7种型号。

如果您对上面的内容有很大的信心,您可以尝试扩展到所有的7个GPU。

如果您在中间,您可以尝试运行4个并行的培训作业,每台机器一个,对于其中三个,使用双GPU。

票数 0
EN

Stack Overflow用户

发布于 2021-12-11 17:10:17

我建议你使用多gpu训练,并一次训练一个模型。所以用两个gpus在每台计算机上训练一个模型。

os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" #使用两个gpus进行培训。

这里是一个如何使用多个gpus的示例:

代码语言:javascript
运行
复制
strategy = tf.distribute.MirroredStrategy(devices=["/device:GPU:0","/device:GPU:1"])
with strategy.scope():
    model = get_model()
    model.compile()
    model.fit()

使用镜像策略,批大小将被拆分。所以你可以使用更大的批次大小。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70314051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档