pytorch加载的模型踩坑之Error(s) in loading state_dict

RuntimeError: Error(s) in loading state_dict for CRNN:
	size mismatch for rnn.1.embedding.weight: copying a param with shape torch.Size([6736, 512]) from checkpoint, the shape in current model is torch.Size([5530, 512]).
	size mismatch for rnn.1.embedding.bias: copying a param with shape torch.Size([6736]) from checkpoint, the shape in current model is torch.Size([5530]).
	这是在其他pytorch 训练好的模型数据文件,加载时候报错。

因为是在另外一个crnn模型训练好后加载到chineseocr的模型里替换crnnlstm.pth,所以一开始盖了key,因为我的保存不一样,更换完key的读取,出现torch.Size不一致问题,
判断发现在于加载模型部分,是输出的nclass不对。
最后发现是训练时,忘了改alhabet,我以为用的是5529,但实际我训练时忘了改回来用的是6735(当时只更换了字符集char_std_5990)。

参考链接:1.PyTorch 保存和加载模型参数,从预训练模型中加载部分参数,包括预训练模型中某些参数不匹配的情况
2.建议收藏-使用pytorch时遇到的问题汇总
3.pytorch 预训练模型读取修改相关参数填坑
4.PyTorch中fc.bias和fc.weight的大小不匹配
5.如何确定Param的大小?
6.Pytorch导入每层的weight和bias保存的参数到指定的层里面

你可能感兴趣的:(pytorch加载的模型踩坑之Error(s) in loading state_dict)