在 Ubuntu 上运行 PyTorch 的完整步骤
一 准备环境
- 更新系统并安装基础工具:
- sudo apt update && sudo apt upgrade
- sudo apt install -y python3 python3-pip build-essential
- 建议创建隔离环境(二选一):
- 使用 venv:
- sudo apt install -y python3-venv
- python3 -m venv ~/pytorch-env
- source ~/pytorch-env/bin/activate
- 使用 conda(Miniconda):
- 下载并安装 Miniconda,然后创建环境:
- conda create -n pytorch-env python=3.10 -y
- conda activate pytorch-env
- 升级 pip:python -m pip install -U pip
以上步骤完成后,后续安装与运行都在激活的虚拟环境中进行。
二 安装 PyTorch
- CPU 版本(最通用):
- pip install torch torchvision torchaudio
- GPU 版本(pip,按 CUDA 版本选择其一):
- CUDA 11.8:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- CUDA 12.1:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
- GPU 版本(conda,内置 cudatoolkit,无需单独装 CUDA):
- conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
- 说明:
- 若不确定 CUDA 版本,可先装 CPU 版,或到 PyTorch 官网生成与你系统匹配的命令。
- 使用 conda 时优先选择带 cudatoolkit 的构建,减少驱动/库不匹配问题。
三 验证安装与运行第一个程序
- 验证安装:
- python - <<‘PY’
import torch
print(“PyTorch version:”, torch.version)
print(“CUDA available:”, torch.cuda.is_available())
if torch.cuda.is_available():
print(“CUDA device count:”, torch.cuda.device_count())
print(“Current device:”, torch.cuda.current_device())
print(“Device name:”, torch.cuda.get_device_name(0))
PY
- 运行示例脚本 test.py:
- nano test.py
- 粘贴:
- import torch
x = torch.rand(5, 3)
y = torch.rand(5, 3)
z = torch.matmul(x, y)
print(z)
- 运行:python test.py
- 启用 GPU(若可用):
- device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)
- x, y = x.to(device), y.to(device)
- z = torch.matmul(x, y)
以上验证与示例覆盖了版本、CUDA 可用性以及最小矩阵运算。
四 GPU 排错要点
- 驱动与工具链:
- 查看推荐驱动:ubuntu-drivers devices
- 安装驱动(示例):sudo apt install nvidia-driver-535(按推荐版本安装)
- 若使用系统 CUDA,设置环境变量(示例路径,按实际安装版本调整):
- echo ‘export PATH=/usr/local/cuda/bin:$PATH’ >> ~/.bashrc
- echo ‘export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH’ >> ~/.bashrc
- source ~/.bashrc
- 版本匹配:
- 驱动版本需与 CUDA 版本匹配;conda 方案用内置 cudatoolkit 通常更省心。
- 常见症状与处理:
- torch.cuda.is_available() 为 False:检查驱动是否加载(nvidia-smi)、是否安装了对应 CUDA 的 PyTorch 包、是否在虚拟环境中正确激活。
- 导入 torch 报 libcudart.so 找不到:通常是 CUDA 库路径未加入环境变量或版本不匹配,优先用 conda 的 cudatoolkit 方案或修正 LD_LIBRARY_PATH。