Извините, если мое описание длинное и скучное, но я хочу предоставить вам наиболее важные детали для решения моей проблемы. Недавно я купил комплект разработчика Jetson Nano с 4 Гб ОЗУ, и, чтобы получить, как я считаю, лучшую конфигурацию для обнаружения объектов, я следую этому руководству, сделанному Адрианом Роузброком из Pyimagesearch:
https://www.pyimagesearch.com/2020/03/25/how-to-configure-your-nvidia-jetson-nano-for-computer-vision-and-deep-learning/ Дата: март 2020 г. Краткое изложение этого руководства:
- 1: Flash Jetson Pack 4.2 .img внутри microSD для Jetson Nano (у меня 32 ГБ класса A)
- 2: После установки на плату Nano настройте Ubuntu 18.04 и полностью избавьтесь от Libreoffice, чтобы получить больше доступного места.
- 3: Шаг №5: Установите зависимости на уровне системы (включая cmake, python3 и редактор nano)
- 4: Обновить CMake (без ошибок)
- 5. Установка зависимостей системного уровня OpenCV и других зависимостей разработки.
- 6. Настройте виртуальные среды Python на вашем Jetson Nano (успешно установлены virtualenv и virtualenvwrapper без ошибок, включая версию файла bash с nano)
- 7. Создайте virtaul env с помощью python 3 и установите protobuf и libprotobuf, чтобы получить более эффективный Tensorflow. Успешно установлен. На то, чтобы закончить, потребовался час, это нормально
- 8: А вот и проблема: установите numpy и cython внутри этого env и проверьте, импортируя библиотеку numpy. Когда я пытаюсь сделать этот шаг, я получаю: Нелегальная инструкция (ядро сброшено), как вы можете видеть на изображении: [Ошибка с Python3.6.9 ]: https://i.stack.imgur.com/rAZhm.png
Я сказал, что все равно продолжим этот урок:
- 9: Установите Scipy v1.3.3: все в порядке с первыми тремя строками, но когда мне нужно использовать python для выполнения файла stup.py, снова появляется ОН (не клоун). [Не могу выполнить эту строку]: https://i.stack.imgur.com/wFmnt.jpg
Затем я провел эксперимент, я создал этот p2cv4 env с Python 2, установил 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, и idk, какая версия была активна в марте 2020 года, как та, которую использовал Адриан в то время.
В других сообщениях я читал, что этот SIGILL появляется, когда версия пакета или библиотеки, такая как Numpy of TF, больше не совместима с конкретным старым или маломощным процессором, как в этих сообщениях: Недопустимая аппаратная инструкция при попытке импортировать тензорный поток, https://github.com/numpy/numpy/issues/9532
Поэтому я хочу перейти на более старую версию Python, например 3.6.5 или 3.5, но я не могу найти четких шагов для этого в Ubuntu. Я думаю, что это исправит эту ошибку, и позвольте мне продолжить настройку Jetson Nano.
В руководстве pyimageseach используется Python 3.6, но он не указывает, последняя версия - 3.6.9 или другая. Если эту ошибку вызывает не Python, дайте мне знать. Помогите, пожалуйста!