macOS Sonoma环境下PyTorch的完整安装指南 (2025年05月版)

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

macOS Sonoma环境下PyTorch的完整安装指南 (2025年05月版)

引言

PyTorch作为当前最流行的深度学习框架之一,在macOS平台上的安装过程随着系统版本的更新而有所变化。本文将详细介绍在macOS Sonoma系统上安装PyTorch的完整流程,包括CPU和GPU(MPS加速)两种版本的选择,并验证安装是否成功。

准备工作

在开始安装前,请确保:

  1. 你的macOS系统版本为Sonoma(14.x)或更高
  2. 已安装Xcode命令行工具
  3. 已安装Homebrew包管理器
  4. 推荐使用Python 3.8-3.11版本(PyTorch官方推荐范围)

检查系统版本

代码片段
sw_vers

检查Python版本

代码片段
python3 --version

如果没有安装Python或版本不合适,可以通过Homebrew安装:

代码片段
brew install python@3.11

步骤一:创建虚拟环境(推荐)

使用虚拟环境可以避免包冲突问题,强烈推荐。

代码片段
# 创建名为pytorch_env的虚拟环境
python3 -m venv pytorch_env

# 激活虚拟环境
source pytorch_env/bin/activate

激活后,你的命令行提示符前应该会显示(pytorch_env)

步骤二:安装PyTorch

PyTorch提供了多种安装方式,我们将使用最稳定的pip安装方法。

CPU版本安装(适用于所有Mac)

代码片段
pip3 install torch torchvision torchaudio

MPS加速版本(适用于Apple Silicon芯片)

如果你的Mac配备了M1/M2/M3等Apple Silicon芯片,可以使用Metal Performance Shaders(MPS)后端加速:

代码片段
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

注意:截至2025年5月,PyTorch对MPS的支持仍在积极开发中。虽然大部分功能可用,但某些操作可能不如CUDA稳定。

步骤三:验证安装

让我们通过一个简单的脚本来验证PyTorch是否安装成功,并检查MPS加速是否可用。

创建一个名为verify_pytorch.py的文件:

代码片段
import torch

def print_system_info():
    print(f"PyTorch版本: {torch.__version__}")
    print(f"Python版本: {torch.version.python_version}")
    print("\n===== 计算设备信息 =====")
    print(f"CUDA是否可用: {torch.cuda.is_available()}")
    print(f"MPS是否可用: {torch.backends.mps.is_available()}")
    print(f"当前设备: {torch.device('mps' if torch.backends.mps.is_available() else 'cpu')}")

    # MPS设备信息(如果可用)
    if torch.backends.mps.is_available():
        mps_device = torch.device("mps")
        x = torch.ones(1, device=mps_device)
        print(f"\n示例张量: {x}")
        print(f"张量设备: {x.device}")

if __name__ == "__main__":
    print_system_info()

运行脚本:

代码片段
python3 verify_pytorch.py

预期输出示例(Apple Silicon芯片):

代码片段
PyTorch版本: 2.3.0+nightly.cpu.mac.m1.mps.python3.11.torchvision0.14.0+nightly.cpu.mac.m1.mps.python3.11.torchaudio0.13.0+nightly.cpu.mac.m1.mps.python3.11.numpy1.23.5+nightly.cpu.mac.m1.mps.python3.11.scipy1.9.3+nightly.cpu.mac.m1.mps.python3.11.tqdm4.64.

===== 计算设备信息 =====
CUDA是否可用: False
MPS是否可用: True
当前设备: mps

示例张量: tensor([1], device='mps:0')
张量设备: mps:0

步骤四:测试简单神经网络(可选)

为了进一步验证PyTorch的功能完整性,我们可以测试一个简单的神经网络:

代码片段
import torch.nn as nn
import torch.nn.functional as F

class SimpleNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(10, 20)
        self.fc2 = nn.Linear(20, 2)

    def forward(self, x):
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

# 选择设备(MPS优先)
device = "mps" if torch.backends.mps.is_available() else "cpu"
print(f"使用设备: {device}")

# 创建模型并移动到相应设备
model = SimpleNN().to(device)

# 创建随机输入数据并移动到相应设备
input_data = torch.randn(5, 10).to(device)

# 前向传播测试
output = model(input_data)
print("网络输出:", output)
print("输出形状:", output.shape)

运行这个脚本应该能正确输出网络的预测结果和形状信息。

常见问题解决

Q1: ModuleNotFoundError: No module named 'torch'

这通常意味着PyTorch没有正确安装在当前Python环境中。请确保:
– 激活了正确的虚拟环境(如果有)
– Python版本符合要求(建议3.8-3.11)
– pip命令是在目标环境中运行的(可通过which pip检查)

Q2: MPS不可用(is_available()返回False)

可能原因:
– Mac不是Apple Silicon芯片(M1/M2/M3等)
– macOS版本低于12.6(Sonoma应该没问题)
– PyTorch版本不兼容(尝试更新到最新nightly版)

解决方案:

代码片段
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu --force-reinstall --upgrade --no-cache-dir --ignore-installed --no-deps --quiet --disable-pip-version-check --no-warn-script-location --no-color --no-python-version-warning --no-input --verbose 

Q3: Python与PyTorch版本不兼容

可以访问PyTorch官网查看当前支持的Python版本组合。

GPU加速性能提示

虽然MPS提供了GPU加速能力,但相比NVIDIA CUDA仍有差距。对于大型模型训练:

  1. 降低批次大小:从较小的批次开始逐步增加以找到最佳值
  2. 使用混合精度:可以显著减少内存占用并提高速度

    代码片段
    scaler = torch.cuda.amp.GradScaler() if device.type == 'cuda' else None 
    
  3. 监控GPU内存:使用Activity Monitor观察内存压力

PyCharm配置提示(可选)

如果你使用PyCharm作为IDE:
1. 设置Python解释器:选择之前创建的虚拟环境
Preferences -> Project -> Python Interpreter

  1. 启用终端自动激活
    Preferences -> Tools -> Terminal -> Shell path改为/bin/zsh -l -c "source pytorch_env/bin/activate && /bin/zsh"

总结

本文详细介绍了在macOS Sonoma系统上安装PyTorch的完整流程:

1️⃣ 准备环境:确保系统、Python和工具链就绪
2️⃣ 创建隔离环境:使用venv避免依赖冲突
3️⃣ 选择合适版本:根据硬件选择CPU或MPS加速版
4️⃣ 验证功能:通过简单脚本确认核心功能正常

对于Apple Silicon用户,虽然MPS加速不如CUDA成熟,但已经能够显著提升训练和推理速度。随着PyTorch对Apple平台的持续优化,未来性能有望进一步提升。

原创 高质量