pytorch加载预训练模型遇到的问题:KeyError: ‘bn1.num_batches_tracked‘
问题
最近在使用pytorch1.0加载resnet预训练模型时,遇到的一个问题,在此记录一下。
KeyError: 'layer1.0.bn1.num_batches_tracked’
其实是使用的版本的问题,pytorch0.4.1之后在BN层加入了track_running_stats这个参数,
这个参数的作用如下:
训练时用来统计训练时的forward过的min-batch数目,每经过一个min-batch, track_running_stats+=1
如果没有指定momentum, 则使用1/num_batches_tracked 作为因数来计算均值和方差(running mean and variance).
原文链接:https://blog.csdn.net/qq_40821799/article/details/103079350
其实,这个参数没啥用.但因为官方提供的预训练模型是pytorch0.3版本训练出来的,因此没有这个参数.
所以,只要过滤一下预训练权重字典中的关键字即可,‘num_batches_tracked’.代码例子,如下.
有问题的代码:
def load_specific_param(self, state_dict, param_name, model_path):param_dict = torch.load(model_path)for i in state_dict:key = param_name + '.' + istate_dict[i].copy_(param_dict[key])del param_dict
对’num_batches_tracked进行过滤:
def load_specific_param(self, state_dict, param_name, model_path):param_dict = torch.load(model_path)param_dict = {k: v for k, v in param_dict.items() if 'num_batches_tracked' not in k}for i in state_dict:key = param_name + '.' + iif 'num_batches_tracked' in key:continuestate_dict[i].copy_(param_dict[key])del param_dict
pytorch加载预训练模型遇到的问题:KeyError: ‘bn1.num_batches_tracked‘相关推荐
- pytorch加载预训练模型_Pytorch-Transformers 1.0发布,支持六个预训练框架,含27个预训练模型...
AI 科技评论按:刚刚在Github上发布了开源 Pytorch-Transformers 1.0,该项目支持BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等,并包含 ...
- Pytorch 加载预训练模型参数时出现size mismatch错误
目录 1 不妨先研究一下' resnet18-5c106cde.pth'里面存了什么东西以及它的数据类型 (1_1)' resnet18-5c106cde.pth'的数据类型
- pytorch:加载预训练模型(多卡加载单卡预训练模型,多GPU,单GPU)
在pytorch加载预训练模型时,可能遇到以下几种情况. 分为以下几种 在pytorch加载预训练模型时,可能遇到以下几种情况. 1.多卡训练模型加载单卡预训练模型 2. 多卡训练模型加载多卡预训练模 ...
- Pytorch网络模型权重初始化、保存与加载模型、加载预训练模型、按需设置学习率
前言 在我们对神经网络模型进行训练时,往往需要对模型进行初始化或者加载预训练模型.本文将对模型的权重初始化与加载预训练模型做一个学习记录,以便后续查询使用. 权重初始化 常见的初始化方法 PyTorc ...
- HuggingFace学习3:加载预训练模型完成机器翻译(中译英)任务
加载模型页面为:https://huggingface.co/liam168/trans-opus-mt-zh-en 文章目录 整理文件 跑通程序,测试预训练模型 拆解Pipeline,逐步进行翻译任 ...
- 加载预训练模型时报错 KeyError: param ‘initial_lr‘ is not specified in param_groups[0]
在加载预训练模型继续训练时,程序报错:KeyError: "param 'initial_lr' is not specified in param_groups[0] when resum ...
- keras冻结_Keras 实现加载预训练模型并冻结网络的层
在解决一个任务时,我会选择加载预训练模型并逐步fine-tune.比如,分类任务中,优异的深度学习网络有很多. ResNet, VGG, Xception等等... 并且这些模型参数已经在imagen ...
- MXNet快速入门之训练加载预训练模型(四)
前言 在前面几篇文章中详细介绍了MXNet的一些特点以及入门基础知识,本篇文章主要介绍如何使用MXNet来训练模型.加载模型进行预测.预训练模型以及MXNet中GPU使用的相关知识. 在介绍训练模型之 ...
- Caffe2教程实例,加载预训练模型
Caffe2教程实例,加载预训练模型 概述 本教程使用模型库中的预训练模型squeezenet 里分类我们自己的图片.我们需要提供要分类图片的路径或者URL信息作为输入.了解ImageNet对象代码可 ...
最新文章
- 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法
- 独家 | 国内AI专业高考报考指南
- 当 Messaging 遇上 Jepsen
- Vue电商网站项目开发总结
- 格局炸裂,程序员必看的十部纪录片
- try的动词用法_try的用法_tries与try的用法,请分别举例说明。谢!
- 现当代英国童话小说传统对幻想文学创作的启示
- 提高禁毒意识,vr全景直观感受毒品危害
- pytorch深度学习出错整理(一)
- 基于安卓的校园订餐系统开发设计
- 重天乾 (易經大意 韓長庚)
- 7.4 第三方支付和跨境支付
- Rosalind Java| Translating RNA into Protein
- [conda] 利用conda安装本地包
- 京东云服务器使用教程
- iframe的属性及其简单使用(点击标签切换页面)
- .bat文件改为windows默认打开方式
- 用友java面试题_用友网络科技Java高级开发面试题(2019)
- 手动实现一个满足promises-aplus-tests的Promise
- [转帖]老鸟运维的下场