2021-05-14

2021-05-17 10:50:20 浏览数 (1)

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

0 人点赞