关于tx2上import torch导致Segmentation fault(core dumped)的一种解决方案

环境:tx2(dji manifold)+jetpack4.4+cuda10.2+pytorch1.7

错误复现:

import torch
Segmentation fault (core dumped)

网上有朋友说先import cv2再import torch,但是这个方法好像只是针对于很早的一个版本的torch有效。

import cv2
import torch
Traceback (most recent call last):
File “”, line 1, in
File “/home/dji/.local/lib/python3.6/site-packages/torch/init.py”, line 190, in
from torch.C import *
ImportError: /home/dji/.local/lib/python3.6/site-packages/torch/lib/libtorch_cpu.so: undefined symbol: sgesdd

使用gdb调试的结果如下,不过这个报错我看不懂,是在网上搜资料时对照别人的解决方案做的。

(gdb) r -c “import torch”
Starting program: /usr/bin/python3 -c “import torch”
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/aarch64-linux-gnu/libthread_db.so.1”.

我之前同时配置了两台可以正常运行torch的妙算,放假回家后通过ssh远程连接妙算进行调试,结果有一台的torch环境突然给崩溃了。在网上搜索了很多资料都没有找到可行和有效的解决方案。开虚拟环境和删除torch再重新安装torch都没用。
于是我去nvidia的论坛提问,技术小哥哥第一次告诉我可能是blas版本的问题,和他核对了一下blas的版本都是0.2.20+ds-4之后排除了这个原因。他还告诉我可能是python的pip库有冲突,当时除了这个方法就只有刷机了,于是我一个一个的对照两个妙算的python库版本,最后发现两个妙算只有scipy的版本不一样,将scipy删除之后错误就解决了。

分析:由于妙算(tx2)是arm架构,如果直接使用pip安装scipy会安装上一个十分奇怪的版本,有可能不是自己手动安的而是在安装别的库的时候他给自动加进去了scipy导致这个隐蔽的错误。Arm上的scipy安装还是需要从源码自己编译的。不要图方便直接用pip安装。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值