gpt4 book ai didi

python - Jetson Nano 上的非法指令(核心转储)错误

转载 作者:行者123 更新时间:2023-12-04 12:06:02 26 4
gpt4 key购买 nike

对不起,如果我的描述冗长乏味,但我想给你最重要的细节来解决我的问题。
最近,我终于买了一个 Jetson Nano 开发工具包,它有 4Gb 的 RAM,为了获得我认为的对象检测的最佳配置,我遵循了 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 错误]:/image/rAZhm.png

  • 我说,无论如何让我们继续本教程:
  • 9:安装Scipy v1.3.3:前三行一切正常,但是当我必须使用python执行stup.py文件时,它再次出现(不是 clown )。
    [也不能执行这一行]:/image/wFmnt.jpg

  • 然后我进行了一个实验,我用 Python 2 创建了这个“p2cv4”环境,安装了 numpy 并对其进行了测试:
    [使用 Python 2]: /image/zCWif.png
    我可以随时退出()并执行其他使用 python 的行
    所以我得出结论,这是一个python版本问题。当我想执行任何 python 代码时,终端以核心转储结束程序,apt-get 或 pip 不要显示任何错误。我想使用 python 3,因为将来有一天包或库将需要 python 3。
    对于 python 3,Jetson Nano 的最后一个版本是 3.6.9,idk 目前在 2020 年 3 月是哪个版本,就像 Adrian 当时使用的那个
    在其他帖子中,我读到当软件包或库版本(如 TF 的 Numpy)与特定的旧或低功耗 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导致此错误,请告诉我。请帮忙!

    最佳答案

    “非法指令”可能是由于 getauxval(AT_HWCAP) 中最近的更改,尝试在 getauxval 失败的情况下从/sys/devices 读取 cpuid 信息。 (OpenBLAS PR 2952 和 3004)
    在启动 python 之前导出 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/

    关于python - Jetson Nano 上的非法指令(核心转储)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65631801/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com