MacBook M4 Pro 上安装miniconda PyTorch 和 YOLOv8 的完整步骤
一、安装 Miniconda(若未安装)
-
下载安装包(M4 Pro 芯片选择 arm64 版本):(推荐直接下载pkg安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/)
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
-
执行安装:
bash Miniconda3-latest-MacOSX-arm64.sh
按提示完成安装,默认勾选“添加到环境变量”。
二、创建并配置 Conda 环境
-
创建 yolov8 环境(指定 Python 3.10):
conda create -n yolov8 python=3.10 pytorch torchvision torchaudio numpy scipy -c pytorch -c conda-forge -y
-
激活环境:
conda activate yolov8
-
降级 NumPy 到 1.x 版本(解决兼容性问题):
conda install numpy=1.26.2 -y
三、验证 PyTorch 安装与 MPS 加速
-
创建测试文件
test_pytorch.py
:import torch import torchvision import torchaudio import time # 检查版本 print(f"PyTorch 版本: {torch.__version__}") print(f"TorchVision 版本: {torchvision.__version__}") print(f"TorchAudio 版本: {torchaudio.__version__}") # 检查 MPS 支持 print(f"MPS 设备: {torch.device('mps')}") print(f"MPS 可用: {torch.backends.mps.is_available()}") # 性能测试 device = torch.device("mps" if torch.backends.mps.is_available() else "cpu") print(f"使用设备: {device}") size = 5000 a = torch.randn(size, size, device=device) b = torch.randn(size, size, device=device) # 预热 torch.matmul(a, b) # 计时 start = time.time() torch.matmul(a, b) elapsed = time.time() - start print(f"矩阵乘法耗时: {elapsed:.4f} 秒")
-
运行测试:
python test_pytorch.py
预期输出:
PyTorch 版本: 2.5.1 TorchVision 版本: 0.20.1 TorchAudio 版本: 2.5.1 MPS 设备: mps MPS 可用: True 使用设备: mps 矩阵乘法耗时: 0.0300 秒(示例耗时,具体取决于硬件)
四、安装 YOLOv8
-
使用 pip 安装 ultralytics(含 YOLOv8):
pip install ultralytics
-
验证 YOLOv8 安装:
yolo task=detect mode=predict model=yolov8n.pt source=0 # 摄像头实时检测
五、MPS 加速优化(可选)
在代码中添加以下配置提升性能:
import torch
# 启用 MPS 缓存(减少重复计算开销)
torch.backends.mps.enable_caching(True)
# 优化矩阵乘法精度(可选)
torch.set_float32_matmul_precision('high')
# 指定 MPS 设备
device = torch.device("mps")
model = YourModel().to(device)
六、常见问题解决方案
-
MPS 不可用:
- 确保 macOS 版本 ≥ 12.3,执行
sw_vers
检查。 - 升级 PyTorch 到最新版本:
conda update pytorch -y
。
- 确保 macOS 版本 ≥ 12.3,执行
-
内存不足:
- 减小批量大小或输入图像尺寸:
yolo predict model=yolov8n.pt source=image.jpg imgsz=640 batch=4 device=mps
- 减小批量大小或输入图像尺寸:
-
NumPy 兼容性问题:
- 若出现
_ARRAY_API not found
错误,确认 NumPy 版本为 1.26.2:conda install numpy=1.26.2 -y
- 若出现
七、环境管理命令
- 查看所有环境:
conda info --envs
- 删除环境:
conda remove -n yolov8 --all
- 更新环境依赖:
conda update --all -y
通过以上步骤,您可以在 MacBook M4 Pro 上成功部署支持 MPS 加速的 PyTorch 和 YOLOv8,实现高效的机器学习推理与训练。