Mac M1 如何安装 Tensorflow [2023-09]

发布时间 2023-09-07 21:00:43作者: 今天学了微积分

0 前言

写这篇博客倒不是说 tensorflow 的安装有多难,主要是版本更新快,安装方式也在更新。

过去一年里 tensorflow 经历了3个小版本的更新,从 v2.9-v2.12,以前的安装方式现已不太适用。

如今的安装相比以前要简洁多了,归功于 tensorflow 在苹果芯片上的生态越来越完善。想想去年这个时候安装,还被繁琐的步骤以及不知为何出现的 bug 且检索不出答案按在地上摩擦,斗争许久最终放弃,转移到 kaggle 上实现自己的需求。

1 安装

前提

  • python >= 3.8
  • 安装 command-line tools:在 terminal 中运行xcode-select --install

现在安装已经没有 conda 的硬性要求了,主要通过 pip 安装。

  1. 建环境
python3 -m venv ~/venv-metal
source ~/venv-metal/bin/activate
python -m pip install -U pip

或者用 conda

conda create -n tf python=3.9
  1. 安装 tensorflow
  • version=2.13
    pip install tensorflow
  • version<=2.12
    pip install tensorflow-macos==<version>
  1. 安装 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 年以前的结果,苹果官方给出的安装方案也已不用这个包,但还是有很多教程写要装这个,以后应该都没必要安装了。

2 参考: