异常处理 Your PyTorch installation may be too old 运行时错误 版本过低的处理过程

在之前的文章中我们介绍过anaconda的安装和基本入门使用。笔者遇到的问题是在anaconda虚拟环境运行程序是出现的。其实本篇并不是pytorch相关的知识点介绍,只是针对一个异常处理的过程总结。

1、异常背景

笔者在gayhub上嫖到一个自动写文章的源码,扒下来学一波,于是在Linux服务器上搭建了代码所遇的python环境,根据requirements.txt的内容安装所有需要的包,原作者只做基本环境做了python3.6的要求,所以笔者用anaconda 构建虚拟环境的时候直接安装python==3.6.0的环境,同样在这个基础上安装了pytorch的包(pytorch==1.4.0)

2、异常发生

环境构建完成后运行代码就出现了那个常规错误。类似于如下的输出

Traceback (most recent call last):
  File "demo.py", line 76, in <module>
    demo(args)
  File "demo.py", line 45, in demo
    model.load_state_dict(torch.jit.load(args.model))
  File "/home/simon/anaconda3/envs/raft/lib/python3.6/site-packages/torch/jit/__init__.py", line 146, in load
    torch._C.import_ir_module(module_lookup, f, map_location, _extra_files)
RuntimeError: version_number <= kMaxSupportedFileFormatVersion ASSERT FAILED at /pytorch/caffe2/serialize/inline_container.cc:131, please report a bug to PyTorch. Attempted to read a PyTorch file with version 3, but the maximum supported version for reading is 1. Your PyTorch installation may be too old. (init at /pytorch/caffe2/serialize/inline_container.cc:131)

这个异常已经给出了最本质的问题所在,其实就是你运行的代码是用更高版本的pytorch语法写的,但是你现在的环境pytorch的版本过低。

一般来说,是有两个处理方案的: 一是修改你的代码运行环境,二是修改代码的写法。如果修改代码的写法,主要是比对pytorch==1.4.0与pytorch==1.7.0 +的差异就可以了,版本之间的写法造成了该异常的发生,修改代码兼容性就可以避免这个问题。

但是笔者是在嫖别人的源码,首次环境错误不太好直接修改代码,万一越来越碎就狗带了。所以笔者直接把anaconda的环境删掉了,安装了python==3.6.9,在这个python环境的基础上安装pytorch,此时已经pytorch==1.9.0了,这个问题直接规避掉。

发表回复