Как установить TensorFlow на Macbook M1

Подскажите, пожалуйста, как правильно установить TensorFlow 2 на Macbook M1. По официальной иснтрукции https://www.tensorflow.org/install/pip?hl=ru#macos проверяю версии:

Python 3.9.10
pip 22.0.4 from /Users/vlad/miniforge3/lib/python3.9/site-packages/pip (python 3.9)

Далее по инструкции предлагают установить виртуальную среду по документации https://developer.apple.com/metal/tensorflow-plugin/:

Устанавливаю виртуальную среду:

 python3 -m venv ~/tensorflow-metal
 source ~/tensorflow-metal/bin/activate
 python -m pip install -U pip

Далее, ставлю Conda:

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

conda install -c apple tensorflow-deps

Далее:

conda install -c apple tensorflow-deps==2.6.0
python -m pip install tensorflow-macos

На этом шаге вроде бы все устанавливается, но есть ошибки:

error: pkg-config probably not installed: FileNotFoundError(2, 'No such file or directory')
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for h5py
Failed to build h5py
ERROR: Could not build wheels for h5py, which is required to install pyproject.toml-based projects

Далее, ставлю:

python -m pip install tensorflow-metal - здесь без ошибок

В конце предлагают запустить проверку, делаю:

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

и получаю:

raceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'tensorflow'

На этом все... не понимаю как правильно нужно устанавливать, в теме нейронных сетей и я полный 0, пока что.


Попробовал просто pip install tensorflow:

pip install tensorflow
Requirement already satisfied: tensorflow in ./miniforge3/lib/python3.9/site-packages (0.12.0)
Requirement already satisfied: protobuf==3.1.0 in ./miniforge3/lib/python3.9/site-packages (from tensorflow) (3.1.0)
Requirement already satisfied: wheel>=0.26 in ./miniforge3/lib/python3.9/site-packages (from tensorflow) (0.35.1)
Requirement already satisfied: numpy>=1.11.0 in ./miniforge3/lib/python3.9/site-packages (from tensorflow) (1.19.5)
Requirement already satisfied: six>=1.10.0 in ./miniforge3/lib/python3.9/site-packages (from tensorflow) (1.15.0)
Requirement already satisfied: setuptools in ./miniforge3/lib/python3.9/site-packages (from protobuf==3.1.0->tensorflow) (60.10.0)

Теперь при проверке python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

 `Traceback (most recent call last):


File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
  File "/Users/vlad/miniforge3/lib/python3.9/imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "/Users/vlad/miniforge3/lib/python3.9/imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: dlopen(/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/_pywrap_tensorflow.so, 0x000A): tried: '/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/_pywrap_tensorflow.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/_pywrap_tensorflow.so' (no such file), '/usr/lib/_pywrap_tensorflow.so' (no such file)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/__init__.py", line 60, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
  File "/Users/vlad/miniforge3/lib/python3.9/imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "/Users/vlad/miniforge3/lib/python3.9/imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: dlopen(/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/_pywrap_tensorflow.so, 0x000A): tried: '/Users/vlad/miniforge3/lib/python3.9/site-packages/tensorflow/python/_pywrap_tensorflow.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/_pywrap_tensorflow.so' (no such file), '/usr/lib/_pywrap_tensorflow.so' (no such file)


Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.`

На данном этапе при проверке имею вот такое:

 % python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
 Metal device set to: Apple M1 Pro

 systemMemory: 16.00 GB
 maxCacheSize: 5.33 GB

 2022-04-01 14:12:34.600366: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
 2022-04-01 14:12:34.600494: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:271] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
 tf.Tensor(981.7157, shape=(), dtype=float32)

Но при запуске в Jupiter notebook модуль по прежнему не найден, подскажите что я делаю не так?

ModuleNotFoundError: No module named 'tensorflow'

Ответы (0 шт):