Huggingface填坑:Unexpected key(s) in state_dict: “roberta.pooler.dense.weight“....
在加载已经训练好的模型时,出现问题如下:
RuntimeError: Error(s) in loading state_dict for RobertaForSequenceClassification:Unexpected key(s) in state_dict: "roberta.pooler.dense.weight", "roberta.pooler.dense.bias".
先说原因
版本问题!
在huggingface3.1.0中,roberta相关模型的实现是12层transformers+一层pooling+一层由下游任务决定的输出层
但到了huggingface4.10.2以即之后版本(3.1.0~4.10.2之间的版本我没测试),roberta相关模型的实现变成了12层transformers+一层由下游任务决定的输出层,所以会出现上面的问题!
解决方法
其实model.state_dict()就是一个用字典表示的参数集,用字典的pop删除多出的pool层参数就可以了(pool层参数包含weight和bias)。
在pretrain-finetune相关任务中,可以理解成”一层pooling+一层由下游任务决定的输出层“都是和特定预训练任务相关的层,应该在finetune时去掉(自我安慰 )
另,huggingface的transformers安装时建议从git上的项目安装,pip安装的话example里有的例子用不了。huggingface的datasets里load_dataset
方法是要连外网下载的,需要科学手段~
Huggingface填坑:Unexpected key(s) in state_dict: “roberta.pooler.dense.weight“....相关推荐
- PyTorch加载模型model.load_state_dict()问题,Unexpected key(s) in state_dict: “module.features..,Expected .
希望将训练好的模型加载到新的网络上.如上面题目所描述的,PyTorch在加载之前保存的模型参数的时候,遇到了问题. Unexpected key(s) in state_dict: "mod ...
- Unexpected key(s) in state_dict: “dense_block1.denselayer1.norm.1
Unexpected key(s) in state_dict: "dense_block1.denselayer1.norm.1 from torchvision.models impor ...
- Unexpected key(s) in state_dict: module.backbone.bn1.num_batches_tracked
pytorch预测的时候报异常了: {RuntimeError}Error(s) in loading state_dict for DataParallel: Unexpected key( ...
- Unexpected key(s) in state_dict: “module.conv1.weight“, “module.bn1.weight“, “module.bn1.bias“,
由于服务器老是断电 所以想加载已经训练好的上一个epoch的模型,但是在加载时遇到了这个问题 这是由于保存模型字典时每一个模块的key都自动加上了'module'.所以在加载模型参数继续训练时就会与模 ...
- pytorch加载模型报错Unexpected key(s) in state_dict: module.conv1.weight, module.bn1
文章目录 背景 报错 原因 解决 背景 Pytorch在加载模型参数的时候,有两种情况可能出现这种问题: 自己写的网络结构,例如: 代码 import models arch = 'resnet50' ...
- Missing key(s) in state_dict | unexpected_keys | 模型加载 [torch.load] 报错【解决方案】
文章目录 Missing key(s) in state_dict 报错分析 该报错快速直接解决方法 额外思路 [Unexpected key(s) in state_dict]- 解决思路 Miss ...
- 【填坑之旅】手把手教你如何用AndroidStudio上传自己的library到Jcenter库
[填坑之旅]手把手教你如何用AndroidStudio上传自己的library到Jcenter库 前言:我们在使用AndroidStudio的时候,会经常用到第三方的代码库.引入第三方库的方式无非就是 ...
- KKBOX音乐——数据分析,用户研究与填坑指南
KKBOX音乐--数据分析,用户研究与填坑指南 导语 1 数据来源 2 数据处理 2.1 录入数据 2.2 数据类型 3 探索性分析 3.1 MySQL+Excel 3.1.1 每年3月最先注册的前1 ...
- 微信云托管-填坑之旅
微信云开发开始收费了,一个月20块钱,贼贵,用不起.而按用量收费.资源还能复用的兄弟产品微信云托管还像还行.所以就有了一场填坑旅行. windows10下安装docker之坑 在本地开发,需要使用do ...
最新文章
- JQuery的摸索之路(二比较)
- 如何快速将Android库发布到JCenter
- 使用 RxJs Observable 来避免 Angular 应用中的 Promise 使用
- Another approach to enable table edit in SE16
- java spi机制_Java是如何实现自己的SPI机制的? JDK源码(一)
- TensorFlow(六)with语句
- python基础之序列类型的方法——列表元组
- 在MySQL查询山东省男生信息_MySQL-查询
- mysql容器重启数据是否丢失_docker容器重启 数据会丢吗
- Python计算今年第n个周m是几月几号
- Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5
- vim中自动格式化代码
- 白话/图示 sleep_on/wake_up的执行流程
- 【5G架构】5G 协议栈结构以及与OSI七层协议之间的关系
- 分享一个通过项目管理师证书成功办理北京户口的励志经验
- oracle 如何防止锁表,oracle锁表该如何解决
- python取出字典重复值_在Python中的字典中查找具有重复值的键
- linux可变剪切分析,生信实操|一个生信素人的上道经验分享-转录组测序(可变剪接篇)...
- [排序算法] 13. 常见排序算法总结及运用高精度计时模板测试性能(复杂度分析、高精度计时、总结)
- c语言错误 cout不明确,C++ error: cout 不明确的符号