Я пытаюсь заставить тензорный поток работать на моем MacBook Pro M1. Однако при попытке импорта я продолжаю получать следующую ошибку: zsh: illegal hardware instruction python
Я скачал и установил tensorflow по этой ссылке.
Это были мои шаги установки:
python3 -m venv venv
.install_venv.sh
(который находится в загруженной папке) в терминал, добавьте -p
в конце.import tensorflow as tf
.Я использую Python 3.8.2.
Это stackoverflow.com/a/72381925/2546381 сработало!
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/bin/python3: Mach-O 64-bit executable x86_64 Может ли это быть проблемой, связанной с домашним пивом?
Во-первых, деактивируйте env anaconda, если он активен. Затем измените строку на file $(which /usr/bin/python3) и запустите ее.
В MacOS доступно более одного which — один встроен в zsh, а другой поставляется как внешний двоичный файл. Они совершенно не похожи друг на друга; Я вообще не рекомендую использовать which.
При всем уважении, ваш комментарий вообще ничего полезного к разговору не добавил.
Означает ли этот ответ, что простой выбор другого исполняемого файла Python позволяет tensorflow без проблем работать как есть?
У меня была такая же проблема
Это из-за чипа 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 и более поздних версиях.
Это сработало для меня после того, как я попробовал кучу решений безрезультатно.
Шаг 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 это то, чего я бы тоже опасался. В моем случае было очень сложно заставить его работать по-другому, поэтому я выбрал это не оптимальное решение.
Если тебя это утешит, я делал это уже 3-4 раза, и мой компьютер не был взломан :)
Вы можете установить tensorflow для машин M1 с помощью этой команды установки pip: pip install tensorflow-macos
Спасибо, что поделились этим. У меня сработало и колесу на гугл диске можно доверять :smile
Большое спасибо, я буквально потратил 3 дня, пытаясь решить эту проблему. Это единственное решение, которое сработало для меня.
Вы можете подписаться на этот блог, чтобы узнать о похожей проблеме, и попробовать то же решение, предложенное в ветке forums.macrumors.com/threads/… . Также последние обновления tensorflow для mac OS можно найти по этой ссылке blog.tensorflow.org/2020/11/…