最近在复现论文的时候发现,某些官方提供的权重文件的 key 会多一个 module 前缀,造成模型加载失败的问题。解决的方案有很多,比如遍历权重文件的每一个 item 手动去掉 "module."前缀。但是这样子比较麻烦。深究其原因发现是训练时使用多GPU训练导致的,因此我们在加载权重文件时,也是用官方提供的多 gpu 训练的包装器包装一下就好了。添加如下代码即可,最简单得解决这个问题
model = nn.DataParallel(model)
最近在复现论文的时候发现,某些官方提供的权重文件的 key 会多一个 module 前缀,造成模型加载失败的问题。解决的方案有很多,比如遍历权重文件的每一个 item 手动去掉 "module."前缀。但是这样子比较麻烦。深究其原因发现是训练时使用多GPU训练导致的,因此我们在加载权重文件时,也是用官方提供的多 gpu 训练的包装器包装一下就好了。添加如下代码即可,最简单得解决这个问题
model = nn.DataParallel(model)