«zsh: недопустимая аппаратная инструкция python» при установке Tensorflow на macbook pro M1

Я пытаюсь заставить тензорный поток работать на моем MacBook Pro M1. Однако при попытке импорта я продолжаю получать следующую ошибку: zsh: illegal hardware instruction python

Я скачал и установил tensorflow по этой ссылке.

Это были мои шаги установки:

  • установить venv: python3 -m venv venv.
  • перетащите файл install_venv.sh (который находится в загруженной папке) в терминал, добавьте -p в конце.
  • выберите каталог venv в качестве места, где должен быть установлен tensorflow.
  • активировать вент.
  • введите "Питон".
  • попробуйте импортировать тензорный поток: import tensorflow as tf.

Я использую Python 3.8.2.

Вы можете подписаться на этот блог, чтобы узнать о похожей проблеме, и попробовать то же решение, предложенное в ветке forums.macrumors.com/threads/… . Также последние обновления tensorflow для mac OS можно найти по этой ссылке blog.tensorflow.org/2020/11/…

user11530462 22.12.2020 11:10

Это stackoverflow.com/a/72381925/2546381 сработало!

VanagaS 25.05.2022 19:27
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
37
2
95 248
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Python3 поставляется с двумя архитектурами в M1.

$ file $(which python3)
# If you installed python through Homebrew or Anaconda, deactivate your conda env, then run this line instead:
# $ file $(which /usr/bin/python3)
/usr/bin/python3: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/usr/bin/python3 (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python3 (for architecture arm64e): Mach-O 64-bit executable arm64e

Здесь очень важно указать, какой из них использовать. Вы можете сделать это, установив скрипт следующим образом:

arch -arm64 bash install_venv.sh my_tf_env

Если у вас несколько установок Python, используйте:

arch -arm64 bash install_venv.sh --python=/usr/bin/python3 my_tf_env

Вы можете заменить my_tf_env на любое другое имя/путь по вашему выбору.

Когда я запускаю $ file $(which python3), я получаю только один вариант: /opt/homebrew/Caskroom/miniconda/base/envs/svc-pdf-reader/bi‌​n/python3: Mach-O 64-bit executable x86_64 Может ли это быть проблемой, связанной с домашним пивом?

Zaki Aziz 04.05.2021 20:00

Во-первых, деактивируйте env anaconda, если он активен. Затем измените строку на file $(which /usr/bin/python3) и запустите ее.

dedede 21.05.2021 22:55

В MacOS доступно более одного which — один встроен в zsh, а другой поставляется как внешний двоичный файл. Они совершенно не похожи друг на друга; Я вообще не рекомендую использовать which.

Charles Duffy 21.05.2021 23:00

При всем уважении, ваш комментарий вообще ничего полезного к разговору не добавил.

dedede 21.05.2021 23:02

Означает ли этот ответ, что простой выбор другого исполняемого файла Python позволяет tensorflow без проблем работать как есть?

matanster 29.11.2021 19:15

У меня была такая же проблема

Это из-за чипа M1. Теперь есть предварительная версия, которая предоставляет аппаратное ускорение TensorFlow и надстройки TensorFlow для macOS 11.0+. Встроенное аппаратное ускорение поддерживается на компьютерах Mac M1 и Mac с процессорами Intel через платформу Apple ML Compute.

Вам необходимо установить TensorFlow, который поддерживает чип M1. Просто извлеките этот репозиторий tensorflow macos и запустите ./scripts/download_and_install.sh

ОШИБКА: TensorFlow с ускорением ML Compute доступен только в macOS 11.0 и более поздних версиях.

Muhammad Talha 28.03.2023 21:44
Ответ принят как подходящий

Это сработало для меня после того, как я попробовал кучу решений безрезультатно.

Шаг 1. Используя pyenv, установите версию Python 3.8.5 и установите ее в качестве версии Python по умолчанию. Это руководство (https://realpython.com/intro-to-pyenv/) полезно для правильно настроить pyenv.

Шаг 1.1 Используйте этот пост (https://github.com/pyenv/pyenv/issues/1446), если у вас возникли проблемы с запуском pyenv в zsh.

Шаг 1.2. После того, как у вас запущена версия Python 3.8.5, вы можете проверить это, запустив python -V, который должен вывести:

Python 3.8.5

Шаг 2 Установите virtualenv через pip install virtualenv

Шаг 2.1 Создайте виртуальную среду, запустив virtualenv ENV

Шаг 2.2 Активируйте эту виртуальную среду, запустив source ENV/bin/activate

Шаг 3. Установите колесо тензорного потока под названием tensorflow-2.4.1-py3-none-any.whl, расположенное по этой общедоступной ссылке на Google Диск https://drive.google.com/drive/folders/1oSipZLnoeQB0Awz8U68KYeCPsULy_dQ7

Шаг 3.1 Предположим, вы просто установили колесо для загрузки pip install ~/Downloads/tensorflow-2.4.1-py3-none-any.whl в вашей активированной виртуальной среде

Шаг 4 Введите python, который вызовет >>> в вашем терминале, и введите

>>> import tensorflow
>>>

Если нет ошибки «zsh незаконной аппаратной инструкции», все должно быть в порядке.

Примечание. Если вы используете anaconda, вышеописанное также будет работать. Вы можете пропустить шаги виртуальной среды (при условии, что у вас есть виртуальная среда, активированная через Conda) и просто перейти прямо к pip install, как указано выше (шаги 3 и далее).

Приносим извинения за кибер-осведомленность, но как можно проверить принадлежность / личность сопровождающего, предоставляющего этот файл колеса с диска Google?

matanster 27.11.2021 15:11

@matanster это то, чего я бы тоже опасался. В моем случае было очень сложно заставить его работать по-другому, поэтому я выбрал это не оптимальное решение.

Vakidis 29.11.2021 18:47

Если тебя это утешит, я делал это уже 3-4 раза, и мой компьютер не был взломан :)

logankilpatrick 20.12.2021 00:41

Вы можете установить tensorflow для машин M1 с помощью этой команды установки pip: pip install tensorflow-macos

Shahar Gino 28.03.2022 13:56

Спасибо, что поделились этим. У меня сработало и колесу на гугл диске можно доверять :smile

Pardeep Singh 30.04.2022 15:16

Большое спасибо, я буквально потратил 3 дня, пытаясь решить эту проблему. Это единственное решение, которое сработало для меня.

nickinade 24.04.2023 09:18

Другие вопросы по теме