前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021-05-14

2021-05-14

原创
作者头像
Hi0703
修改2021-05-17 10:50:20
3650
修改2021-05-17 10:50:20
举报
文章被收录于专栏:Hi0703Hi0703

1. 解决了上次FileNotFoundError,是个比较弱智的问题,原因在于,下载下来的.pth文件名字跟config.py文件里写的不一样,没仔细看,一直耗了不少时间卡在这里。目前出现了新的ERROR。

2. 目前卡在利用预训练模型初始化backbone上。

3. pytorch加载预训练模型:

在训练模型时,我们常常需要利用预训练的baseline模型对所设计网络的backbone或部分layer进行初始化,给网络训练提供一个较好的起点,同时减少训练的时间成本。比较常见的就是利用imagenet上训练好的标准网络来初始化新网络的部分层。

在进行初始化时,往往会出现两种情况

(a) 待初始化的层键值和预训练模型是匹配的。

新模型和baseline模型的键值匹配。

(b) 二者键值不匹配,在键值名称上有少许差异。

新模型和baseline模型的键值名称上存在差异,

比如由module.layers.0.conv1.weight 改为 modulelist.layers.0.conv1.weight,

这时需要对checkpoint键值进行更新,使其与新模型键值匹配后再进行初始化。

详细:https://blog.csdn.net/Charles5101/article/details/101028435

4. 不太懂模型里的一些keys。

5. state_dict变量:

在pytorch中,torch.nn.Module模块中的state_dict变量存放训练过程中需要学习的权重和偏执系数

state_dict作为python的字典对象将每一层的参数映射成tensor张量

需要注意的是torch.nn.Module模块中的state_dict只包含卷积层和全连接层的参数

当网络中存在batchnorm时,例如vgg网络结构,torch.nn.Module模块中的state_dict也会存放batchnorm's running_mean。

详细:https://blog.csdn.net/weixin_36670529/article/details/106601134

so,state_dict变量就是存放卷积层&全连接层参数的python字典。

6. 这里有个问题是不知道.pth文件里预训练模型啥样,所以找到了一个pytorch可视化工具netron

详细介绍&下载地址在:https://www.cnblogs.com/jiangnanyanyuchen/p/13344217.html

7. pytorch模型文件pth详解

地址:https://www.jianshu.com/p/946d1ce9c149

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档