【发布时间】:2021-04-14 07:49:53
【问题描述】:
对不起,如果我的描述冗长乏味,但我想给你最重要的细节来解决我的问题。 最近,我终于购买了具有 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
我可以随时 exit() 并执行其他使用 python 的行 所以我断定这是一个python版本问题。当我想执行任何 python 代码时,终端以核心转储结束程序,apt-get 或 pip 不显示任何错误。而且我想使用 python 3,因为将来某个包或库将需要 python 3。
对于 python 3,Jetson Nano 的最新版本是 3.6.9,并且知道哪个版本在 2020 年 3 月当前处于活动状态,就像 Adrian 当时使用的那个
在其他帖子中,我读到当像 TF 的 Numpy 这样的包或库版本不再对特定的旧 CPU 或低功耗 CPU 友好时,就会出现这个 SIGILL,就像在这篇帖子中一样: Illegal hardware instruction when trying to import 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 导致此错误,请告诉我。请帮忙!
【问题讨论】:
-
一般来说,当尝试在具有不同架构的平台上运行为 1 CPU 架构编译的内容时,往往会发生“非法指令”错误。架构甚至不必那么不同。我已经看到当 CPU 架构与 x86-64 版本略有不同时会发生这种情况。
-
Jetson Nano 配备四核 ARM Cortex-A57 MPCore 处理器,与他的教程中显示的相同。 python版本可以改变这么多过去运行良好的配置吗?因为他也使用 3.6 但不知道是否是 3.6.9(我有)