在加载已经训练好的模型时,出现问题如下:

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“....相关推荐

  1. PyTorch加载模型model.load_state_dict()问题,Unexpected key(s) in state_dict: “module.features..,Expected .

    希望将训练好的模型加载到新的网络上.如上面题目所描述的,PyTorch在加载之前保存的模型参数的时候,遇到了问题. Unexpected key(s) in state_dict: "mod ...

  2. 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 ...

  3. Unexpected key(s) in state_dict: module.backbone.bn1.num_batches_tracked

    pytorch预测的时候报异常了: {RuntimeError}Error(s) in loading state_dict for DataParallel:     Unexpected key( ...

  4. Unexpected key(s) in state_dict: “module.conv1.weight“, “module.bn1.weight“, “module.bn1.bias“,

    由于服务器老是断电 所以想加载已经训练好的上一个epoch的模型,但是在加载时遇到了这个问题 这是由于保存模型字典时每一个模块的key都自动加上了'module'.所以在加载模型参数继续训练时就会与模 ...

  5. pytorch加载模型报错Unexpected key(s) in state_dict: module.conv1.weight, module.bn1

    文章目录 背景 报错 原因 解决 背景 Pytorch在加载模型参数的时候,有两种情况可能出现这种问题: 自己写的网络结构,例如: 代码 import models arch = 'resnet50' ...

  6. Missing key(s) in state_dict | unexpected_keys | 模型加载 [torch.load] 报错【解决方案】

    文章目录 Missing key(s) in state_dict 报错分析 该报错快速直接解决方法 额外思路 [Unexpected key(s) in state_dict]- 解决思路 Miss ...

  7. 【填坑之旅】手把手教你如何用AndroidStudio上传自己的library到Jcenter库

    [填坑之旅]手把手教你如何用AndroidStudio上传自己的library到Jcenter库 前言:我们在使用AndroidStudio的时候,会经常用到第三方的代码库.引入第三方库的方式无非就是 ...

  8. KKBOX音乐——数据分析,用户研究与填坑指南

    KKBOX音乐--数据分析,用户研究与填坑指南 导语 1 数据来源 2 数据处理 2.1 录入数据 2.2 数据类型 3 探索性分析 3.1 MySQL+Excel 3.1.1 每年3月最先注册的前1 ...

  9. 微信云托管-填坑之旅

    微信云开发开始收费了,一个月20块钱,贼贵,用不起.而按用量收费.资源还能复用的兄弟产品微信云托管还像还行.所以就有了一场填坑旅行. windows10下安装docker之坑 在本地开发,需要使用do ...

最新文章

  1. JQuery的摸索之路(二比较)
  2. 如何快速将Android库发布到JCenter
  3. 使用 RxJs Observable 来避免 Angular 应用中的 Promise 使用
  4. Another approach to enable table edit in SE16
  5. java spi机制_Java是如何实现自己的SPI机制的? JDK源码(一)
  6. TensorFlow(六)with语句
  7. python基础之序列类型的方法——列表元组
  8. 在MySQL查询山东省男生信息_MySQL-查询
  9. mysql容器重启数据是否丢失_docker容器重启 数据会丢吗
  10. Python计算今年第n个周m是几月几号
  11. Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5
  12. vim中自动格式化代码
  13. 白话/图示 sleep_on/wake_up的执行流程
  14. 【5G架构】5G 协议栈结构以及与OSI七层协议之间的关系
  15. 分享一个通过项目管理师证书成功办理北京户口的励志经验
  16. oracle 如何防止锁表,oracle锁表该如何解决
  17. python取出字典重复值_在Python中的字典中查找具有重复值的键
  18. linux可变剪切分析,生信实操|一个生信素人的上道经验分享-转录组测序(可变剪接篇)...
  19. [排序算法] 13. 常见排序算法总结及运用高精度计时模板测试性能(复杂度分析、高精度计时、总结)
  20. c语言错误 cout不明确,C++ error: cout 不明确的符号

热门文章

  1. python分析基金_【教妹子买基金-01】用python分析基金成分股
  2. 批量伪原创工具-伪原创api-伪原创
  3. Hive中对json处理
  4. 《每日一荐月刊》2020-01
  5. Spring Boot 配置 MySQL 数据库
  6. 小米1s充电时屏幕一直亮着不关闭的解决办法
  7. 零基础学Web 04(style标签)
  8. 移动所联手南京联通推出5G产业技术创新服务基地,全面构建5G融合新生态...
  9. 更改CSDN皮肤的方法
  10. 用 python 爬取房价信息