原创

2021-05-14

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ​2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。

    2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。返回最大的异或结果。

    福大大架构师每日一题
  • 2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。返回最大的异或结果。

    2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。返回最大的异或结果。

    福大大架构师每日一题
  • Thymeleaf 获取model中的值和JS获取Model中的数据

    1:Thymeleaf 获取model中的值 访问model中的数据 //通过“${}”访问model中的属性

    王小婷
  • HLS合成为一整个视频拓展篇

    M3U8视频下载完成之后, 会有一个索引文件加上N多个分片文件, 这样我们想拷贝整个M3U8文件就会很麻烦, 而且M3U8索引文件中会定义分片文件的位置, 如果...

    马上就说
  • 使用my2sql来恢复mysql数据

    使用说明来源原作者:my2sql的GitHub地址:https://github.com/liuhr/my2sql

    wangwei-dba
  • 邻近模糊匹配?你可能不知道的pandas骚操作,确实很好用!

    现在我们有两份数据,一份记录着每天不同玩家购买某道具的时候实际支付的购买金额,另外一份记录着该道具调整售价的日期及对应售价。

    可以叫我才哥
  • 每日一库之 go-carbon,优雅的golang日期时间处理库

    Carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用

    够过瘾
  • 每天学一个 Linux 命令(53):who

    who 命令用于显示当前系统登录的所有用户的信息,可以查看目前有那些用户登录到系统等信息。单独执行 who 命令时可以打印出登录的帐号,用户所使用的终端,登录时...

    民工哥
  • AKShare-股票数据-调查平均持仓

    持仓调查的数据是市场参与者心理、行为表现的结果。市场行为会因为交易规则、政策面消息、媒体噪声等因素的变化而变化。若排除以上因素,在稳定、可重复的博弈环境下,市场...

    数据科学实战
  • 一杯茶的功夫就把日志搜索引擎性能调优了?!

    Beaver 是由日志易自主研发、安全可控的搜索引擎,由 Master、Broker 和 Datanode 三部分组成,已广泛应用于存储和分析大型分布式系统生成...

    日志易
  • JavaScript decodeURI() 函数

    decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。 语法

    王小婷
  • linux时间格式化命令

    原文链接:https://rumenz.com/rumenbiji/linux-date-format.html

    入门笔记
  • Spring 拦截器流程及多个拦截器的顺序

    拦截器是 Spring MVC 中的组件,它可以在进入请求方法前做一些操作,也可以在请求方法后和渲染视图后做一些事情。

    码农UP2U
  • 基于 Nacos 配置中心的动态日志配置方案

    上面这两篇文章只是从技术角度说了,可以实现动态日志配置。但是并没有形成适用生产环境使用的方案。今天介绍一种基于 Nacos 配置中心的动态配置日志级别的方案。

    java乐园
  • Go 每日一库之 dateparse

    不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难。所以在程序中,涉及时间的处理我们一般...

    用户7731323
  • TSINGSEE青犀视频开发中Go语言时间转换过程【附代码】

    在我们开发视频平台智能分析功能的过程中,系统的时间因素也是需要注意的。在很多实际业务中,需要大量处理视频或者分析结果的时间日期时区数据。我们多用golang来进...

    TSINGSEE青犀视频
  • Kafka之消费者模式(六)

    前面系统的介绍了Kafka的生产者模式以及常用命令的操作,和它的监控的信息查看。其实不管是在协议层的维度,还是在MQ的维度,它的模式都是生产者与消...

    无涯WuYa
  • 干货分享 | Pandas处理时间序列的数据

    在进行金融数据的分析以及量化研究时,总是避免不了和时间序列的数据打交道,常见的时间序列的数据有比方说一天内随着时间变化的温度序列,又或者是交易时间内不断波动的股...

    用户6888863
  • jQuery带参跳转新页面,新页面获取url多个参数的办法

    需求: a页面有多个参数 跳转到b页面 在b页面获取a页面带过来的参数 a.html

    王小婷

扫码关注云+社区

领取腾讯云代金券