扑克牌斗牛攻略:牛牛牌型的大小组和排序、详解 2025-05-03 03:35:47
笔记本电脑无线上网卡资费套餐?无线上网卡一般多少钱一月? 2025-05-23 23:27:29
最全面、最实用的高中学习方法与技巧 2025-07-26 18:50:02
宝马有个外号叫“把妹王”?AutoDang车主有话说 2025-07-04 04:39:07
广东三个人喝早茶,会花多少钱? 2025-06-21 18:37:17
最强蜗牛德古拉跑了多久能回来 最强蜗牛德古拉要多少战力 2025-06-07 04:14:37
汽车eco灯亮了是什么意思?仪表盘显示eco是什么意思 2025-07-22 01:47:03
J罗捶地暴怒!受伤被迫离场 哭啊!眼中泛着泪花 2025-06-03 00:32:11
腰围2尺3是多少厘米呢?腰围尺码表 2025-08-15 06:05:47
张震舒淇相恋10余年,却因一句话无疾而终 2025-05-03 09:28:55

【ML笔记】MacOS下的tensorflow环境配置

MacOS使用venv安装tensorflowpython3 -m venv ./venvsource ./venv/bin/activatepython -m pip install -U pippython -m pip install tensorflow#下面的其实可以不用python -m pip install --user tensorflow-metal

MacOS使用conda安装tensorflowTensorflow需要安装的三个包是tensorflow-deps、tensorflow-macos、tensorflow-metal。其中前两个是必须的,tensorflow-metal是让tensorflow能用上Apple Silicon芯片的GPU。

首先创建一个新的conda环境conda create -n tensorflow python=3.9

安装tensorflowstep1# 指定定版本安装 conda install -c apple tensorflow-deps==2.6.0

step2# 若有报错, 则执行pip install torch,然后再重新执行一遍下述命令python -m pip install tensorflow-macos

step3-安装tensorflow-metalpython -m pip install tensorflow-metal

验证安装开 Python 解释器并运行以下代码,如果能够看到输出 TensorFlow 版本和 GPU 信息,说明 TensorFlow 已成功安装。

import tensorflow as tfprint("TensorFlow version:", tf.__version__)print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

import sysimport tensorflow.kerasimport tensorflow as tfimport platformprint(f"Python Platform: {platform.platform()}")print(f"Tensor Flow Version: {tf.__version__}")print(f"Keras Version: {tensorflow.keras.__version__}")print()print(f"Python {sys.version}")gpu = len(tf.config.list_physical_devices('GPU'))>0print("GPU is", "available" if gpu else "NOT AVAILABLE")

使用GPU加速当前不支持

多 GPU 支持

英特尔 GPU 的加速

V1 TensorFlow 网络

在配备 Apple M 芯片(如 M1、M2 系列)设备上,TensorFlow 已支持使用 GPU 加速,但与 PyTorch 的 MPS 设备指定方式稍有不同。

验证 GPU 支持: 在 Python 中运行以下代码,检查是否检测到 Metal 支持的 GPU:

import tensorflow as tfphysical_devices = tf.config.list_physical_devices('GPU')print("Physical GPUs:", physical_devices)

如果配置正确,你会看到类似以下的输出:

Physical GPUs: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

在代码中选择 GPU: TensorFlow 自动会使用可用的 GPU(TensorFlow默认会自动选择可用的 GPU)。如果需要手动指定 GPU 或进行显式控制,可以使用以下代码:

import tensorflow as tf# 列出所有可用的 GPUgpus = tf.config.list_physical_devices('GPU')if gpus: try: # 设置 TensorFlow 使用第一个 GPU tf.config.experimental.set_visible_devices(gpus[0], 'GPU') logical_gpus = tf.config.experimental.list_logical_devices('GPU') print(f"使用的物理 GPU: {gpus[0]}") print(f"逻辑 GPU 数量: {len(logical_gpus)}") # 可选:设置 GPU 内存按需分配 tf.config.experimental.set_memory_growth(gpus[0], True) print("GPU is enabled for TensorFlow") except RuntimeError as e: print(e)else: print("No GPU available, using CPU instead")

在代码中选择设备

在 TensorFlow 中,你也可以通过 tf.device 上下文管理器指定要使用的设备:

import tensorflow as tf# 检查 GPU 是否可用if tf.config.list_physical_devices('GPU'): device_name = '/GPU:0' # 第一个 GPUelse: device_name = '/CPU:0' # 默认使用 CPU# 手动选择设备运行代码with tf.device(device_name): a = tf.constant([[1.0, 2.0], [3.0, 4.0]]) b = tf.constant([[5.0, 6.0], [7.0, 8.0]]) c = tf.matmul(a, b) print(f"运行设备: {device_name}") print("结果:", c)

确认 GPU 是否加速:为了确认计算是否真的在 GPU 上运行,可以使用以下方法:

import tensorflow as tf# 创建一个张量并进行简单的计算a = tf.random.normal((1000, 1000))b = tf.random.normal((1000, 1000))with tf.device('/GPU:0'): # 指定在 GPU 上运行 c = tf.matmul(a, b) print("运行设备:", c.device)with tf.device('/CPU:0'): # 指定在 CPU 上运行 d = tf.matmul(a, b) print("运行设备:", d.device)

你可以通过打印出的设备名(如 GPU:0 或 CPU:0)确认在哪个设备上运行。

运行结果如下:

tips

PyTorch 使用 MPS 的方式指定硬件设备:

if torch.backends.mps.is_available(): device = "mps"

TensorFlow 则自动选择可用的设备(GPU > CPU),并提供手动控制接口(通过 tf.config);可以通过 tf.device 显式指定设备运行(TensorFlow 会自动选择最佳设备(如果支持 GPU 会优先使用))。