NIX ZHU
2022/5/6

在 Mac Studio 上安装 TensorFlow

环境 macOS 12.3.1,M1 Ultra 芯片,已经安装好 Homebrew

此前试过官网提供的安装方式,但失败,因此再试试第三方的安装方式

本文的主要流程参考自 Install TensorFlow on Apple M1 (M1, Pro, Max) with GPU (Metal),根据遇到的问题对步骤进行了调整

先安装 miniforge(它提供 conda 作为后续的 Python 环境管理工具):

brew install miniforge

然后配置当前 Shell(我使用 zsh):

conda init zsh

输出类似如下:

no change     /opt/homebrew/Caskroom/miniforge/base/condabin/conda
……
modified      /Users/nix/.zshrc

==> For changes to take effect, close and re-open your current shell. <==

看起来只修改了~.zshrc(你可自行查看此文件的改动)

按提示,我们开一个新的 Shell 窗口

此时会看到 (base) 开头的提示符,然后我们创建一个新的 conda 环境(独立的环境便于隔离,后续安装的包只会在这个环境里生效):

conda create --name test python=3.9

这个环境的名字是 test(可换成你喜欢的),而且指定使用 Python 3.9,不然可能安装成最新的 Python 3.10,因为目前 TensorFlow 2 只支持 Python 3.6-3.9,如果支持的版本有所变动,可自行调整

接着,我们激活 test 环境:

conda activate test

这时候应该能看到 (test) 开头的提示符

然后在此环境安装 Apple 的 TensorFlow 依赖:

conda install -c apple tensorflow-deps

以及 Apple 给 TensorFlow 提供的 Metal GPU API:

pip install tensorflow-metal

最后安装 macOS arm64 版本的 TensorFlow:

pip install tensorflow-macos

最后我们来测试一下。先进入 Python 交互环境:

python

然后导入 tensorflow(可能需要等待一会儿),看看其版本,以及 CPU/GPU 的情况:

>>> import tensorflow as tf
>>> print("TensorFlow version:", tf.__version__)
TensorFlow version: 2.8.0
>>> print("Num CPUs Available: ", len(tf.config.experimental.list_physical_devices('CPU')))
Num CPUs Available:  1
>>> print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
Num GPUs Available:  1
>>> 

看起来 CPU 和 GPU 各有一个

Ctrl + D 退出 Python 交互环境后,可用如下命令停用 test 环境:

conda deactivate

又会看到 (base) 开头的提示符

之后若想再使用 test 环境,依然是使用如下命令激活:

conda activate test