运行pytorch的时候,出现了莫名的错误。清楚地记得我以前成功编译过,只不过我今天换了一个虚拟环境,竟然跑不通了。
那我在切换回去原来的编译好的用另一个版本的pytorch试试吧。咦?竟然可以运行,那这是怎么回事呢?
经过多方搜索推究,原来需要删除以前安装的 pytorch 的相关的文件(ps:我极度怀疑是以前单独安装caffe2的时候的遗留问题)。不兼容的文件位于哪里呢?对于我的环境来说,主要存在两处。好了,知道原因了,那就着手解决吧。详情如下:
(如果在 anaconda 环境下出现问题,其实,出现这种问题一个很主要的原因是在搭建caffe的时候就没有正确配置Python路径)
问题1:libtorch.so.1: undefined symbol: _ZTI N2at11TypeDefaultE
解决办法:运行的时候报错,原因是我以前已经编译过一个caffe2,然后在我的 /usr/local/lib 下有四个文件,可能跟我的现在运行的pytorch不兼容了,这几个文件分别是:
- libcaffe2_detectron_ops_gpu.so
- libcaffe2_observers.so
- libcaffe2_gpu.so
- libcaffe2.so
那能怎么办,删除了吧。
$ sudo rm /usr/local/lib/libcaffe2*
问题2:ImportError: /home/***/***/python3.6/site-packages/torch/lib/libcaffe2.so: undefined symbol: _ZN3c108demangleEPKc
解决办法:删除另一个文件,指令是:
$ sudo rm /usr/local/lib/libc10.so
然后再运行,不出意外的话应该可以了。
参考:
https://github.com/pytorch/pytorch/issues/15800
https://blog.youkuaiyun.com/u013955915/article/details/86491679