栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

预训练模型的加载机理pytorch版

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

预训练模型的加载机理pytorch版

在做二维目标检测时,我们会对神经网络的部分地方进行修改,比如增加CBAM,或者修改FPN等等。但是将修改后的网络进行训练时,加载预训练权重过程却不会报错,甚至修改网络后性能不增反降。这里面蕴含的知识点在这篇文章做做一个总结。

pytorch中网络导入预训练权重的代码很简单:

net = model()
net.to(device)
net.load_state_dict(torch.load('params.pth'))

其中:

torch.load('params.pth')只是加载了模型参数,并没有将参数放入网络中。这里是将参数以键值对的方式加载到了内存中。 load_state_dict方法才是将参数字典放入网络中。

当我们对网络做了修改后,我们只需要按下面的方式做,就可以将之前的预训练权重加载到新网络中。在mmdetection或者一些大牛的开源代码中,修改网络后仍然能加载预训练权重也是因为以下原因

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号