1. 为什么要在 M1 Mac 上折腾 TensorFlow GPU?
如果你和我一样,从一台老旧的 Intel Mac 或者 Windows 笔记本换到 M1/M2/M3 芯片的 Mac,第一感觉肯定是“快”。日常办公、剪视频那叫一个丝滑。但当你兴冲冲地想跑个深度学习模型,打开熟悉的 TensorFlow 或 PyTorch 时,很可能发现它们默认只用了 CPU,那个传说中的强大 GPU 好像跟你没啥关系。风扇是不怎么转,但训练速度也“感人”地慢了下来。
这感觉就像买了一辆跑车,结果发现它被限速在 60 公里/小时。苹果自研的 Apple Silicon 芯片,其集成的 GPU(苹果称之为“图形处理器”或更具体地,通过 Metal 框架提供支持)性能其实相当强悍,尤其是在能效比上。对于大多数中小规模的模型训练、学习实验、甚至是轻量级的模型微调,M1 Pro/Max 甚至基础款 M1 的 GPU 都完全够用,而且它安静、省电,不用背着游戏本到处跑。
所以,在 M1 Mac 上配置 TensorFlow GPU 加速,不是为了去挑战数据中心里的 A100/H100,而是为了最大化利用你手头这台强大且优雅的生产力工具。它能让你:
- 本地实验更高效:快速验证想法、调试代码,不用总依赖云端服务器或漫长的等待。
- 学习成本更低:学生和初学者可以在自己熟悉的电脑上入门深度学习,无需复杂的环境配置。
- 移动开发无缝衔接:如果你在做 iOS/macOS 端的 AI 应用,本地用 Metal 加速训练和测试,到 Core ML 转换的路径更顺滑。
我当初也是被“GPU 不可用”的提示困扰了很久,摸索了一番才搞定。下面,我就把我从零开始配置、踩坑、再到性能调优的完整经验分享出来,保证每一步你都能跟着做,最终让你的 TensorFlow 代码真正“跑”在 M1 芯片的 GPU 上。
2. 从零开始:七步搭建无痛环境
网上教程很多,但坑也不少。有的依赖关系没理清,有的步骤过时了。我结合自己的实战,总结了一个最稳妥、最清晰的七步法。请严格按照顺序操作,可以避开 99% 的奇怪报错。
2.1 第一步:基础准备与包管理器选择
首先,我们不用系统自带的 Python。为了环境的纯净和可管理性,必须使用虚拟环境。这里我强烈推荐使用 Mambaforge,它是 Conda 的一个更快、更高效的替代品,尤其对于处理 TensorFlow 这类依赖复杂的包,体验好太多。
打开你的终端(Terminal),执行以下命令来安装 Mambaforge:
# 使用 Homebrew 安装 Mambaforge(如果你没有 Homebrew,请先访问 brew.sh 安装)
brew install mambaforge
安装完成后,初始化你的 shell(我以 zsh 为例,如果你是 bash,将 zsh 替换为 bash):
mamba init zsh
然后关闭并重新打开终端,或者执行 source ~/.zshrc 让配置生效。现在,你的命令行前应该会出现 (base) 字样,这表示你已经在 Mamba 的基础环境里了。
2.2 第二步:创建专属的虚拟环境
永远不要在 (base) 环境里直接安装项目包。我们为 TensorFlow GPU 创建一个独立的环境:
# 创建一个名为 ‘tf_gpu’ 的环境,并指定 Python 3.11(目前兼容性最好的版本)
mamba create -n tf_gpu python=3.11
创建完成后,激活这个环境:
mamba activate tf_gpu
你的命令行提示符会从 (base) 变成 (tf_gpu),这表示后续的所有操作都只影响这个沙盒环境,不会搞乱系统。
2.3 第三步:安装 TensorFlow for macOS
这是核心步骤。苹果官方与 TensorFlow 团队合作,提供了专门的 macOS 版本。注意,不要用 pip install tensorflow,那装的是通用版本,不支持 Metal GPU。
# 安装针对 Apple Silicon 优化的 TensorFlow
pip install tensorflow-macos
这个包包含了 TensorFlow 的核心功能,但此时它还不会调用 GPU。
2.4 第四步:安装 Metal 加速插件
让 TensorFlow 能够调用 M1 GPU 的关键,就是这个 tensorflow-metal 插件。它充当了 TensorFlow 和苹果 Metal 图形 API 之间的桥梁。
# 安装 Metal 插件以启用 GPU 加速
pip install tensorf


1万+

被折叠的 条评论
为什么被折叠?



