常规Resnet模型权重转Detectron2格式模型

news/2024/11/17 6:54:19/

最佳想把在torchversion库加载的预训练权重基础上训练过的模型权重加载到Detectron2框架的任务中进行实验。

发现两者必须经过一个转换,实验过后有效的转换方式如下所示,

#!/usr/bin/env python
import pickle as pkl
import sysimport torchif __name__ == "__main__":input = "./model_best.pth.tar"obj = torch.load(input, map_location="cpu")obj = obj["state_dict"]newmodel = {}for k, v in obj.items():old_k = kif "layer" not in k:k = "stem." + kfor t in [1, 2, 3, 4]:k = k.replace("layer{}".format(t), "res{}".format(t + 1))for t in [1, 2, 3]:k = k.replace("bn{}".format(t), "conv{}.norm".format(t))k = k.replace("downsample.0", "shortcut")k = k.replace("downsample.1", "shortcut.norm")print(old_k,v.shape, "->", k)newmodel[k] = vres = {"model": newmodel}torch.save(res,"./output.pth")

 其中我发现当参考网上大多数的解答,使用下面的方式保存的权重,转后后载入时会报错:RuntimeError: Invalid magic number; corrupt file?

换成上面的torch.save就能解决

res = {"model": newmodel}with open("./output.pth", "wb") as f:pkl.dump(res, f)

 


http://www.ppmy.cn/news/720557.html

相关文章

【C++学习笔记】C++中的异常概念异常的使用注意事项异常的优缺点

异常 1 C语言传统的处理异常的方式2 C异常的概念3 异常的使用以及注意事项3.1 异常的简单使用3.2 使用异常的注意事项3.3 异常的重新抛出3.4 异常规范3.5 异常安全 4 C标准库的异常体系5 异常的优缺点6 总结 1 C语言传统的处理异常的方式 C语言传统的错误处理机制:…

ipa上架App Store【uniapp-ios】

前置条件:已获取到.mobileprovision描述文件、.p12证书并打包生成ipa包 (如果还没获取证书、描述文件等可以去看我前两篇博客:uniapp-ios打包步骤 、uniapp-ios打包安装测试。一篇是已经付费了即已经注册了Apple Developer Program&#xf…

机械键盘轴体知识

机械键盘-主流轴体一览 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/105927020

Android 语言列表简码

目录 Android 语言列表 ULocale List​​​​​​​ Android 语言列表 International Components for Unicode (ICU) Data ISO 639 - Standard list of languagesISO 3166 - Standard list of countriesCurrencies, Currency patterns ULocale List ID†Formal name ▼Na…

基于Java+Swing+Mysql人口普查登记系统

基于JavaSwingMysql人口普查登记系统 一、系统介绍二、功能展示1.主页2.新增人口信息3.查询人口信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看列表、新增人口信息、删除人口信息 运行环境:eclipse、idea、jdk1.8 二、功能展示 1.…

Ubuntu18.04网络图标不见了,解决办法

1、删除NetworkManager缓存文件 service NetworkManager stop sudo rm /var/lib/NetworkManager/NetworkManager.state service NetworkManager start 2、修改/etc/NetworkManager/NetworkManager.conf managedtrue 3、重启NetworkManager sudo service network-manager rest…

华为手机系统天气小部件不见了,这样恢复!

华为手机系统天气小部件不见了,如果是误删了,在 窗口工具 找回即可,如果是卸载了,先恢复再在窗口工具找回即可。 一、桌面天气小工具丢失不见了怎么找回? 两指捏合桌面(或长按桌面)&#xff0…

华为手机隐藏app图标_华为手机隐藏图标的设置方法

各位好!所述难题将由我来大伙儿开展解释。以华为p20为例子,系统版本为EMUI10.0,华为p20手机上不能掩藏系统软件。它是为了更好地防止操作失误后没法从主屏中寻找运用,原厂版本号为EMUI5.0及之上系统软件都取消了掩藏桌面图标的作用…