当前位置: 首页 > news >正文

M系列芯片 MacOS 在 Conda 环境中安装 TensorFlow 2 和 Keras 3 完整指南

目录

      • 1. 引言
      • 2. 环境准备
      • 3. 安装 TensorFlow 和必要依赖
      • 4. 结语
      • Reference

1. 引言

Keras 是搞深度学习很可爱的工具,其友好的接口让我总是将其作为搭建模型原型的首选。然而,当我希望在 M 系列芯片的MacBook Pro上使用 Keras时,使用Conda和Pip进行丝滑配置的方法并不直接适用,问题主要源于 conda 环境配置的架构不匹配,M 系列芯片使用 ARM64 架构,而conda默认的环境架构编译方式为x86_64,所以从源拉取tensorflow库的时候也就自动安装了不兼容的x86_64版本。本文将分享我在M系列芯片 MacOS上建立Conda环境并安装Tensorflow2(自带Keras3)的过程,可以让后来人少走弯路。

TensorFlow PluggableDevice 介绍
自 TensorFlow 2.5 起,苹果引入了基于 PluggableDevice 机制的 Metal 插件,使 TensorFlow 能够利用 Apple 的 Metal API 在 GPU 上加速计算。通过 tensorflow-metal 插件,TensorFlow 能够在 Metal Performance Shaders (MPS) 设备上执行计算,为 M 系列芯片上的深度学习训练和推理提供显著的性能提升。

2. 环境准备

在开始前,请确保自己的电脑满足如下基本要求:

Requirements:
• 搭载 Apple 芯片(M1/M2/M3系列)或 AMD GPU 的 Mac 电脑
• macOS 12.0 或更高版本
• Python 3.9 或更高版本
• Xcode 命令行工具(可通过 xcode-select --install 安装)

确保已安装 Xcode 命令行工具,执行如下命令,如果提示"已安装请求的软件",表示已安装过,可以直接进入下一步。

xcode-select --install

如果没有安装 Conda,要先安装 Miniforge,安装命令如下:

# 使用 Homebrew 安装 Miniforge
brew install miniforge

# 初始化 shell 环境
conda init zsh  # 或 conda init bash(取决于所使用的 shell)

如果已有 Anaconda是可以使用的,只是需要特别注意架构问题,推荐做法是在创建环境时指定环境的架构,保持默认环境架构为x86,因为很多Python包仍主要支持x86架构。执行如下命令,创建一个纯 ARM64 架构的 Conda 环境并激活。

# 创建 arm64 架构的环境,指定 Python 版本为 3.10
CONDA_SUBDIR=osx-arm64 conda create -n tensorflow2 python=3.10 -c conda-forge

# 激活环境
conda activate tensorflow2

3. 安装 TensorFlow 和必要依赖

确认环境已正确设置为ARM64架构后,就可以开始安装TensorFlow了。从TensorFlow 2.13版本开始,官方已经提供了对Apple Silicon的原生支持,不再需要特殊的tensorflow-macos包,可以按照以下步骤直接安装。

# 安装 libffi(解决动态链接问题)
conda install -c conda-forge libffi

# 安装 Apple 提供的 TensorFlow 依赖包
conda install -c apple tensorflow-deps

# 安装 TensorFlow
python -m pip install tensorflow -i https://pypi.org/simple

# 安装 Metal 插件(启用 GPU 加速)
python -m pip install tensorflow-metal -i https://pypi.org/simple

安装完成后,使用Apple官方文档提供的脚本(代码如下)进行测试,如果看到程序运行中数据集能正常加载、模型编译无错误、训练过程中能看到进度条和指标正常更新,则表明tensorflow2已经成功安装。

import tensorflow as tf

# 加载 CIFAR-100 数据集
cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()

# 创建 ResNet50 模型
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)

4. 结语

在 M 系列芯片的 Mac 上安装 TensorFlow 2 和 Keras3 的关键在于确保架构一致性,所有组件都应该使用 ARM64 架构。通过利用 PluggableDevice 机制和 tensorflow-metal 插件,可以充分发挥 Apple Silicon 的性能优势,无需外接 GPU 即可进行模型训练和实验。当遇到架构不匹配错误(如mach-o file, but is an incompatible architecture或The TensorFlow library was compiled to use AVX instructions)时,请首先检查环境架构并确保使用ARM64。如果问题仍然存在,创建全新的ARM64环境通常是最干净有效的解决方案。

Reference

Tensorflow Plugin - Metal - Apple Developer

相关文章:

  • 【C++】stack和queue以及priority_queue的使用以及模拟实现
  • 《基于HarmonyOS NEXT API 12+,搭建新闻创作智能写作引擎》
  • 2025国家护网HVV高频面试题总结来了04(题目+回答)
  • 【大厂AI实践】美团:美团智能客服核心技术与实践
  • Spring MVC 程序开发(1)
  • QT实现计算器
  • MYSQL中使用EXPLAIN关键字分析查询的执行计划
  • 移动端国际化翻译同步解决方案-V3
  • 函数的特殊形式——递归函数
  • 注意力机制详解笔记 Attention is all I donot understand!
  • 通信TCP
  • 2025 年:SAP 咨询的关键转折点
  • Linux 命令行的基本命令(生信)
  • 蓝桥杯第15届真题解析
  • JAVA面经2
  • webpack一篇
  • Java 大视界 -- Java 大数据在智能医疗远程诊断中的技术支撑与挑战(106)
  • Linux虚拟机网络配置-桥接网络配置
  • 一篇文章说清楚OKR
  • 4G工业路由器在公交充电桩中的应用与优势
  • 一周文化讲座|那些年的年青人
  • 刘洪洁已任六安市委副书记、市政府党组书记
  • 大学2025丨对话深大人工智能学院负责人李坚强:产学研生态比“造天才”更重要
  • 圆桌|如何应对特朗普政府的关税霸凌?一种联合国视角的思考
  • 总书记考察的上海“模速空间”,是一个怎样的空间?
  • 2025上海车展 | 当智驾不再让人兴奋,汽车智能化暗战升级