暂未解决
已解决:
方法一:
按照提示里写的把
torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu], broadcast_buffers=False, find_unused_parameters=False)中的find_unused_parameters改为True
但我这样写会报新的错,大家可以试一试,我看github上大部分人这么做都成功了
方法二:
运行时加上TORCH_DISTRIBUTED_DEBUG=DETAIL,查看具体报错的是哪个模块,我的问题是自己写的decoder中部分MoudelList定义了(即在init部分写了self.xxx=xxx),但没有参与loss梯度回传,删掉对应的多出来init的网络模块就可以了。