gpt4 book ai didi

Pytorch Lightning 在 ddp 模式下复制主脚本

转载 作者:行者123 更新时间:2023-12-04 08:04:57 28 4
gpt4 key购买 nike

当我使用 ddp 模式(2 个 GPU)在集群上启动我的主脚本时,Pytorch Lightning 会复制主脚本中执行的任何内容,例如打印或其他逻辑。我需要一些扩展的训练逻辑,我想自己处理。例如。在 Trainer.fit() 之后做某事(一次!) .但是随着主脚本的重复,这并不像我想要的那样工作。我也尝试将其包裹在 if __name__ == "__main__" 中,但它不会改变行为。如何解决这个问题?或者,如何在 Trainer 对象周围使用一些逻辑,而没有重复项?

最佳答案

从那以后,我开始在 PyTorch 中使用带有多处理功能的原生“ddp”。据我了解,PytorchLightning (PTL) 只是在多个 GPU 上多次运行您的主脚本。如果您只想在一次脚本调用中适合您的模型,这很好。然而,我认为一个巨大的缺点是在训练过程中失去了灵活性。与您的实验交互的唯一方法是通过这些(记录错误的)回调。老实说,在 PyTorch 中使用原生多处理更加灵活和方便。最后,它实现起来更快、更容易,而且您不必通过 PTL 文档搜索年龄来实现简单的事情。
我认为 PTL 正在朝着一个好的方向前进,移除大部分样板,但是,在我看来,Trainer 概念需要一些认真的返工。在我看来它太封闭了,违反了 PTL 自己的“重组 PyTorch 代码,保留原生 PyTorch 代码”的概念。
如果你想使用 PTL 进行简单的多 GPU 训练,我个人强烈建议不要使用它,对我来说这是浪费时间,最好学习原生 PyTorch 多处理。

关于Pytorch Lightning 在 ddp 模式下复制主脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66261729/

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