You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单机多GPU加载单GPU预训练参数遇Missing keys等错误求助

单机多GPU加载单GPU预训练权重报错:Missing keys/Unexpected keys

在单机多GPU环境下加载单GPU训练得到的预训练参数时,出现了Missing keys和Unexpected keys错误。

相关代码

1. Backbone初始化代码

backbone_cfg = dict(
            embed_dim=embed_dim,
            depths=depths,  
            num_heads=num_heads, 
            window_size=window_size,
            ape=False,
            drop_path_rate=0.3,
            patch_norm=True,
            use_checkpoint=False,
            frozen_stages=frozen_stages
        )

self.backbone = SwinTransformer(**backbone_cfg)

2. 最初的多GPU权重加载函数

def init_weights_multiGPUs(self, pretrained=None):
             if pretrained is not None:
                if dist.get_rank() == 0:
                    self.backbone.load_state_dict(torch.load(pretrained))
                dist.barrier()

其中pretrained为预训练参数路径。

已尝试的解决方法(未生效)

修改后的权重加载函数:

def init_weights_multiGPUs(self, pretrained = None) :
        print(f'== Load encoder backbone on multiGPUs from: {pretrained}')
        if isinstance(self.backbone, torch.nn.parallel.DistributedDataParallel):
            self.backbone = self.backbone.module
        self.backbone.load_state_dict(torch.load(pretrained, map_location='cuda:{}'.format(torch.cuda.current_device())))

内容的提问来源于stack exchange,提问作者Mingshuai Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 23:52:45