在 macos 上用 conda 安装 pytorch 可实现高效、隔离的深度学习开发,尤其适配 apple silicon(自动启用 metal 加速),需确认架构(arm64/x86_64)、使用 miniforge/mambaforge、创建独立环境(如 python=3.11)、按芯片类型选择对应安装命令,并通过 torch.device("mps") 启用 mps 加速。

在 macOS 上用 Conda 安装 PyTorch 是一种高效、隔离性强的方式,尤其适合需要多环境管理或依赖版本控制的深度学习开发场景。相比 pip,Conda 能统一管理 Python 包与底层 C/C++ 库(如 MKL、OpenMP),对 Apple Silicon(M1/M2/M3)芯片支持更成熟,能自动启用 Metal 加速(PyTorch 2.0+ 默认支持),无需额外配置 CUDA(因 macOS 不支持 NVIDIA GPU)。
确认系统架构与 Python 版本
macOS 深度学习开发前需明确硬件和运行时环境:
- 终端执行 uname -m 或 arch 查看架构:返回 arm64 表示 Apple Silicon,x86_64 表示 Intel;
- 运行 python --version 和 conda --version 确保已安装较新 Conda(建议 23.7+);
- 推荐使用 Miniforge(专为 ARM 优化的 Conda 发行版)或 Mambaforge,避免 Anaconda 在 arm64 下的兼容性问题。
创建专用 Conda 环境并安装 PyTorch
避免污染 base 环境,用独立环境隔离依赖:
- 执行 conda create -n pytorch-env python=3.11(Python 3.11 兼容性最佳,3.12 尚未全面支持);
- 激活环境:conda activate pytorch-env;
- 安装 PyTorch(含 Metal 后端):
conda install pytorch torchvision torchaudio cpuonly -c pytorch(Intel Mac)
或
conda install pytorch torchvision torchaudio -c pytorch-nightly(Apple Silicon,确保获取带metal支持的 nightly 构建); - 验证安装:python -c "import torch; print(torch.__version__, torch.backends.mps.is_available())" —— 输出应显示版本号及
True(表示 MPS 后端可用)。
启用 Metal 加速(MPS)进行训练推理
PyTorch 在 macOS 上通过 MPS(Metal Performance Shaders)调用 GPU,但需代码显式指定设备:
- 将张量/模型移至 MPS 设备:device = torch.device("mps"),再用 .to(device);
- 注意:不是所有算子都支持 MPS,遇到
NotImplementedError时可回退到 CPU(torch.device("cpu")); - 训练循环中建议添加设备检查:
if torch.backends.mps.is_available():
device = torch.device("mps")
else:
device = torch.device("cpu")
常见问题与优化提示
实际使用中易忽略的关键细节:
-
Conda 渠道优先级:若同时添加
-c conda-forge和-c pytorch,需确保pytorch渠道优先(用 conda config --add channels pytorch 并设为最高); -
内存限制:MPS 当前不支持 pinned memory,
pin_memory=True在 DataLoader 中需设为False; - 调试技巧:启用 MPS 日志辅助排错:export PYTORCH_ENABLE_MPS_FALLBACK=1(允许不支持算子自动降级到 CPU);
- 更新策略:定期运行 conda update pytorch torchvision torchaudio -c pytorch 获取 MPS 优化补丁。










