python3 установка Tensorflow на Apple silicon M1

#python-3.x #tensorflow #pip

#python-3.x #tensorflow #pip

Вопрос:

У меня macOS Big Sur на Apple Silicon M1, и я не могу установить Tensorflow в python3. Я удалил xcode python3 и установил brew arm64 python3 (x86 python3 также не работает)

Я проверил успешную версию 64 bis

 python3 -c "import sys; print(sys.version)" or python -c "import struct; print(struct.calcsize('P')*8)"
 

3.8.7 (по умолчанию, 30 декабря 2020 года, 02:09:32)
[Clang 12.0.0 (clang-1200.0.32.28)]

введите описание изображения здесь

Может ли это работать в любом случае, или кто знает, как заставить это работать?

Комментарии:

1. Универсальных колес Tensorflow пока нет, поэтому вы не сможете установить его через pip install . Проверьте github.com/apple/tensorflow_macos для установки вилки Tensorflow для M1, предоставленной Apple. Согласно /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apple/tensorflow_macos/master/scripts/download_and_install.sh)" readme, ярлык есть.

Ответ №1:

Apple M1 — это процессор с архитектурой ARM64, в то время как все pip-пакеты TensorFlow скомпилированы для архитектуры x86_64. (исключая пакеты Raspberry pi, но они в любом случае не будут совместимы с macOS).

Если мы посмотрим на название пакетов pip на странице установки TensorFlow, большинство из них содержит либо x86_64 или amd64 , что указывает на то, что они построены на основе архитектуры x86_64.

Если вы хотите запустить TensorFlow на M1, вам необходимо либо:

  • скомпилируйте TensorFlow из источников, ориентированных на x86_64, через Rosetta 2. К сожалению, согласно этой проблеме на github, Rosetta 2 не поддерживает набор команд AVX, которые включены в pip-сборках TensorFlow, поэтому требуется восстановление из исходного кода.
  • Используйте экспериментальную поддержку TensorFlow на M1, разработанную Apple, которую вы можете найти в этом репозитории github. Обратите внимание, что в этом случае некоторые пакеты python могут быть несовместимы / недоступны с M1.

Обратите внимание, что по состоянию на 2021/01/04 Apple M1 не поддерживается командой TensorFlow:

В настоящее время мы не можем поддерживать Mac ARM. Существует менее одного разработчика, который может сосредоточиться на проблемах сборки во всех 3 операционных системах.

Следовательно, поддержка должна исходить от сообщества. Существует сборка SIG, которая фокусируется на проблемах, связанных со сборкой, на нескольких других платформах, позволяя нам сосредоточиться только на пакетах pip, которые мы официально одобряем.

Ответ №2:

Теперь все должно работать лучше с плагином TensorFlow Metal.

По состоянию на 25 октября 2021 года macOS 12 Monterey обычно доступна.

Шаги по настройке M1 для TensorFlow:

Обновите свой компьютер до Monterey.

Если у вас установлена conda, удалите ее.

Затем следуйте инструкциям от Apple здесь.

Очищено ниже:

Загрузите и установите Conda из Miniforge:

 chmod  x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate
 

В активной среде conda установите зависимости TensorFlow, базовый TensorFlow и TensorFlow metal:

 conda install -c apple tensorflow-deps
pip install tensorflow-macos
pip install tensorflow-metal
 

Вы должны быть готовы к работе.