Mac M1 如何安装 Tensorflow [2023-09]
0 前言
写这篇博客倒不是说 tensorflow 的安装有多难,主要是版本更新快,安装方式也在更新。
过去一年里 tensorflow 经历了3个小版本的更新,从 v2.9-v2.12,以前的安装方式现已不太适用。
如今的安装相比以前要简洁多了,归功于 tensorflow 在苹果芯片上的生态越来越完善。想想去年这个时候安装,还被繁琐的步骤以及不知为何出现的 bug 且检索不出答案按在地上摩擦,斗争许久最终放弃,转移到 kaggle 上实现自己的需求。
1 安装
前提
- python >= 3.8
- 安装 command-line tools:在 terminal 中运行
xcode-select --install
现在安装已经没有 conda 的硬性要求了,主要通过 pip 安装。
- 建环境
python3 -m venv ~/venv-metal
source ~/venv-metal/bin/activate
python -m pip install -U pip
或者用 conda
conda create -n tf python=3.9
- 安装 tensorflow
- version=2.13
pip install tensorflow
- version<=2.12
pip install tensorflow-macos==<version>
- 安装 metal
pip install tensorflow-metal==<version>
注意
tensorflow 与 metal 之间有版本对应关系
tensorflow | tensorflow-metal |
---|---|
v2.5 | v0.1.2 |
v2.6 | v0.2.0 |
v2.7 | v0.3.0 |
v2.8 | v0.4.0 |
v2.9 | v0.5.0 |
v2.10 | v0.6.0 |
v2.11 | v0.7.0 |
v2.12 | v0.8.0 |
v2.13 | v1.0.0 |
跑个代码验证一下
import tensorflow as tf
print(tf.__version__)
cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()
model = tf.keras.applications.ResNet50(
include_top=True,
weights=None,
input_shape=(32, 32, 3),
classes=100,)
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, batch_size=64)
关于 tensorflow-deps
这个包包含了一些在 m1 上安装 tensorflow 所需要的依赖包,版本随着 tensorflow 的版本走,但只更新到了 v2.10,目前已经一年多未更新,推测这个包是为了解决以前 tensorflow 在 m1 上适配还没有那么完善的问题。
现在关于这个包的资料很少了,检索出来的基本都是 22 年以前的结果,苹果官方给出的安装方案也已不用这个包,但还是有很多教程写要装这个,以后应该都没必要安装了。