最厉害的小白啊 2025-03-18 11:26 采纳率: 0%
浏览 13

关于#深度学习#的问题:在DDP中使用预训练网络,就必须要设置ddp_find_unused_parameters_True吗

我有个疑问,在DDP中使用预训练网络,并将其冻住,不让更新参数,就必须要设置ddp_find_unused_parameters_True吗?但是这个又和torch.utils.checkpoint 这个冲突了,这怎么解决呢

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-03-18 11:26
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    关于#深度学习#的问题:在DDP中使用预训练网络,就必须要设置ddp_find_unused_parameters_True吗

    你好!DDP(Data Parallelism)是 PyTorch 中的一种并行训练算法,用于在多个 GPU 上并行训练模型。预训练网络是指已经训练好的网络,可以作为新的网络的初始化参数。

    在使用 DDP 时,ddp_find_unused_parameters 是一个可选参数,用于控制 DDP 是否在每个 GPU 上查找未使用的参数。如果设置为 True,DDP 会在每个 GPU 上查找未使用的参数,并将其标记为 unused。这样可以避免在每个 GPU 上都复制这些参数,从而减少内存使用量。

    在你的情况下,你使用了预训练网络,并将其冻住,不让更新参数。在这种情况下,你不需要设置 ddp_find_unused_parametersTrue。因为你已经冻住了网络的参数,DDP 不需要查找未使用的参数。

    torch.utils.checkpoint 是 PyTorch 中的一个模块,用于实现模型的 checkpointing(快照)和 resume(恢复)。它可以帮助你在训练过程中保存模型的状态,并在下次训练时恢复到之前的状态。

    因此,在使用 DDP 时,ddp_find_unused_parameterstorch.utils.checkpoint 是两个独立的概念,用于解决不同的问题。如果你不需要查找未使用的参数,可以设置 ddp_find_unused_parametersFalse

    评论

报告相同问题?

问题事件

  • 创建了问题 3月18日