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 删除。