Advertisement

pytorch分布式 RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]

阅读量:

出现错误提示:RuntimeError: 模块的参数和缓冲区必须位于设备 cuda:0(device_ids[0])上,但发现其中一个位于设备 cuda:1。
应对措施:将 DP 调整为 DDP 后,该问题得以解决。
引发错误的代码段如下:

复制代码
    # DP模式, module_a是一个分类器
    module_a = torch.nn.DataParallel(module_a)
    
    
    AI写代码python

完成修改后的代码:

复制代码
    local_rank = 0
    # DDP模式
    module_a = torch.nn.parallel.DistributedDataParallel(module=module_a, broadcast_buffers=False, device_ids=[local_rank])
    module_a.train()
    
    
    AI写代码python

全部评论 (0)

还没有任何评论哟~