因pytorch版本不同导致训练模型加载失败的解决办法

问题描述:

本人由于自己的电脑性能较差,所以将训练的过程交给实验室的电脑,不料在测试和生成混淆矩阵图时出现如下错误:

训练时环境:torch 1.8
部署时环境:torch 1.4

RuntimeError: version_ <= kMaxSupportedFileFormatVersion INTERNAL ASSERT FAILED at /pytorch/caffe2/serialize/inline_container.cc:132, please report a bug to PyTorch. Attempted to read a PyTorch file with version 3, but the maximum supported version for reading is 2. Your PyTorch installation may be too old. 

原因分析:

在torch1.6版本及其以后,torch.save函数使用了一种新的文件格式。


解决方案:

方法一:安装高版本的pytorch(不低于训练时的版本)

具体如下:(这里用的是Pycharm)
因pytorch版本不同导致训练模型加载失败的解决办法_第1张图片
但这个办法安装的是CPU版的Pytorch

方法二:将torch.save中的_use_new_zipfile_serialization参数设置为False

torch.load仍然保持着对旧版本的兼容,如果高版本环境下想要保存低版本兼容的模型文件格式,可以在torch.save()函数中将_use_new_zipfile_serialization参数设定为False。

import torch
state_dict = torch.load(checkpoint_old_file, map_location="cpu")
torch.save(state_dict, checkpoint_new_file, _use_new_zipfile_serialization=False)

  以上是本人针对碰到的问题进行整理的解决办法,由于每个人碰到的问题可能有所差别,以及笔者可能有所疏忽,所以本篇文章的方法对每个人并不一定奏效,有什么问题可以在评论区里留言,笔者能解决一定帮忙解决。当然,笔者也会对其中的疏忽进行补充、不定时更新,在记录自己学习过程中碰到的问题的同时,也希望能给其他网友提供一定的帮助,让碰到相同问题的网友能少走弯路,把更多的时间花在编程和知识学习上。

参考:https://zhuanlan.zhihu.com/p/465807214

你可能感兴趣的:(入坑深度学习,pytorch,深度学习,人工智能,python)