python - Jetson Nano 上的非法指令(核心转储)错误
问题描述
对不起,如果我的描述很长而且很无聊,但我想给你最重要的细节来解决我的问题。最近,我终于买了一个带有 4Gb RAM 的 Jetson Nano 开发人员套件!为了获得我认为的最佳对象检测配置,我正在遵循 Pyimagesearch 的 Adrian Rosebrock 制作的本指南:
https://www.pyimagesearch.com/2020/03/25/how-to-configure-your-nvidia-jetson-nano-for-computer-vision-and-deep-learning/日期:2020 年 3 月。总结本指南的内容如下:
- 1:用于 Jetson Nano 的 microSD 内的 Flash Jetson Pack 4.2 .img(我的是 32GB 'A' 级)
- 2:插入 Nano 板后,配置 Ubuntu 18.04 并完全摆脱 Libreoffice 以获得更多可用空间
- 3:步骤#5:安装系统级依赖项(包括cmake、python3和nano编辑器)
- 4:更新CMake(没有任何错误)
- 5:安装OpenCV系统级依赖和其他开发依赖
- 6:在您的 Jetson Nano 上设置 Python 虚拟环境(成功安装 virtualenv 和 virtualenvwrapper,包括带有 nano 的 bash 文件版本)
- 7:使用python 3创建virtaul env并安装protobuf和libprotobuf以获得更高效的Tensorflow。安装成功。花了一个小时完成,这很正常
- 8:破门者来了:在这个环境中安装 numpy 和 cython 并检查它是否导入 numpy 库当我尝试执行此步骤时,我得到:非法指令(核心转储),如图所示:[Python3.6.9 错误]: https://i.stack.imgur.com/rAZhm.png
我说,好吧,让我们继续这个教程:
- 9:安装 Scipy v1.3.3:前三行一切正常,但是当我必须使用 python 执行 stup.py 文件时,IT 再次出现(不是小丑)。[也无法执行此行]:https ://i.stack.imgur.com/wFmnt.jpg
然后我进行了一个实验,我使用 Python 2 创建了这个“p2cv4”环境,安装了 numpy 并对其进行了测试:[使用 Python 2]:https ://i.stack.imgur.com/zCWif.png
我可以随时退出()并执行使用python的其他行所以我得出结论这是一个python版本问题。当我想执行任何 python 代码时,终端以核心转储结束程序,apt-get 或 pip 不显示任何错误。我想使用 python 3,因为将来某个包或库将需要 python 3。
对于 python 3,Jetson Nano 的最后一个版本是 3.6.9,并且知道哪个版本在 2020 年 3 月当前处于活动状态,就像 Adrian 当时使用的那个
在其他帖子中,我读到当像 TF 的 Numpy 这样的包或库版本对特定的旧的或低功耗的 CPU 不再友好时,就会出现这个 SIGILL,就像在这篇文章中一样: 尝试导入 tensorflow 时的非法硬件指令,https:// github.com/numpy/numpy/issues/9532
所以我想降级到较旧的 python 版本,如 3.6.5 或 3.5,但我在 Ubuntu 中找不到明确的步骤。我认为这将解决这个错误,让我继续在 Jetson Nano 上进行配置。
pyimageseach 指南使用 Python 3.6,但它没有指定是最后一个 3.6.9 还是其他版本。如果不是 python 导致此错误,请告诉我。请帮忙!
解决方案
“非法指令”可能是由于最近对 getauxval(AT_HWCAP) 的更改。
在 getauxval 未成功的情况下尝试从 /sys/devices 读取 cpuid 信息。(OpenBLAS PR 2952 和 3004)
在启动 python 之前 export OPENBLAS_CORETYPE=ARMV8 (或任何实际硬件)应该有望解决这个问题。例如:
OPENBLAS_CORETYPE=ARMV8 python
如果您想将此导出永久化,您应该通过在终端上键入来打开您的 .bashrc 文件:
nano ~/.bashrc
之后,只需将“export OPENBLAS_CORETYPE=ARMV8”添加到 .bashrc 文件的底部,保存/退出并重新启动系统:
export OPENBLAS_CORETYPE=ARMV8
有关更多详细信息,请查看:
https://github.com/numpy/numpy/issues/18131 https://www.reddit.com/r/JetsonNano/comments/ktcyoh/illegal_instructioncore_dumped_error_on_jetson/
推荐阅读
- c++ - 检查向量中所有元素是否在c ++中具有相同值的最快方法
- shell - 如何使用awk计算偏差方程
- flutter - 您好,我正在尝试为我的项目构建 Apk,但遇到了这些错误,我尝试了互联网上的所有解决方案,但仍然无法正常工作.. 有什么想法吗?
- ios - 当我使用高于 11.2.1 的 Xcode 版本构建时,调用 SKProductsRequest 失败
- pandas - Pandas Python如何处理出现在数据框中的问号
- android - Paging3 不确定如何转换 PagingSource
- sql - 如何处理空值的转换错误?
- javascript - 错误:让通道 = message.mentions.channels.first() ^ TypeError:无法读取未定义的属性“通道”
- apache-spark - 雪花将镶木地板中的布尔值解释为 NULL?
- android - 离子科尔多瓦振动不适用于 Android 10