温馨提示×

PyTorch在Linux上的使用教程是什么

小樊
36
2025-12-30 06:14:59
栏目: 智能运维

Linux 上使用 PyTorch 的完整教程

一 环境准备与系统依赖

  • 更新系统并安装基础工具(以发行版为准):
    • Debian/Ubuntu:
      • sudo apt update && sudo apt upgrade -y
      • sudo apt install -y build-essential cmake git libopenblas-dev liblapack-dev libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-pip
    • CentOS/RHEL:
      • sudo yum update -y
      • sudo yum groupinstall -y “Development Tools”
      • sudo yum install -y cmake3 git wget python3 python3-devel python3-pip
  • 确认 Python ≥ 3.6pip 可用:python3 --version、pip3 --version;必要时执行 pip3 install --upgrade pip。

二 创建虚拟环境与安装 PyTorch

  • 强烈建议使用虚拟环境隔离依赖(任选其一):
    • venv(轻量):
      • python3 -m venv pytorch_env
      • source pytorch_env/bin/activate
    • Conda(依赖管理更强):
      • conda create -n pytorch_env python=3.8
      • conda activate pytorch_env
  • 安装命令(按硬件选择其一,优先从官网获取与你环境匹配的命令):
    • CPU 版:
      • pip:pip3 install torch torchvision torchaudio
      • conda:conda install pytorch torchvision torchaudio cpuonly -c pytorch
    • GPU 版(示例为 CUDA 11.8,请将 cu118 替换为你的 CUDA 大版本):
      • pip:pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
      • conda:conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
  • 说明:GPU 版本需确保系统已安装与所选 PyTorch 版本匹配的 CUDA/cuDNN;若使用 conda,常用做法是让 conda 管理 cudatoolkit,避免与系统 CUDA 冲突。

三 GPU 支持与驱动检查

  • 查看驱动与 CUDA 运行时版本:
    • nvidia-smi(右上显示 Supported/Runtime CUDA)
  • 安装与配置要点(仅当使用 NVIDIA GPU 时):
    • 安装与驱动匹配的 CUDA ToolkitcuDNN,并设置环境变量(示例路径,按实际版本调整):
      • echo ‘export PATH=/usr/local/cuda-11.7/bin:$PATH’ >> ~/.bashrc
      • echo ‘export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH’ >> ~/.bashrc
      • source ~/.bashrc
    • 选择与 nvidia-smi 显示的 CUDA 大版本一致 的 PyTorch 版本(例如 11.7/11.8),避免不兼容导致 torch.cuda.is_available() 为 False。

四 验证安装与常见问题

  • 基础验证(在激活的虚拟环境中执行):
    • python3 - <<‘PY’ import torch, torchvision, torchaudio print(“torch:”, torch.version, “torchvision:”, torchvision.version, “torchaudio:”, torchaudio.version) print(“cuda available:”, torch.cuda.is_available()) if torch.cuda.is_available(): print(“device count:”, torch.cuda.device_count()) print(“current device:”, torch.cuda.current_device()) print(“device name:”, torch.cuda.get_device_name()) PY
  • 常见问题与处理:
    • 网络慢/超时:使用国内镜像(如清华源)pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名;或 conda 配置清华通道(注意与默认通道的兼容性)。
    • CUDA 不可用:核对 nvidia-smi 与 PyTorch 的 CUDA 大版本一致;如使用 conda 安装 GPU 版,优先使用 cudatoolkit 而非系统 CUDA;必要时重装驱动/cuDNN 并重启。
    • 依赖缺失:按第一节补齐系统库与 Python 开发包;编译/安装额外包时确保已安装 cmake、gcc/g++ 等工具。

五 快速上手示例与常用工具

  • 训练一个最小二乘线性模型(验证环境可用):
    • python3 - <<‘PY’ import torch import torch.nn as nn import torch.optim as optim

      class LinearModel(nn.Module): def init(self): super().init() self.linear = nn.Linear(1, 1) def forward(self, x): return self.linear(x)

      model = LinearModel() criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01)

      inputs = torch.tensor([[1.0], [2.0], [3.0]]) targets = torch.tensor([[2.0], [4.0], [6.0]])

      for epoch in range(100): outputs = model(inputs) loss = criterion(outputs, targets) optimizer.zero_grad() loss.backward() optimizer.step() if (epoch + 1) % 10 == 0: print(f’Epoch [{epoch+1}/100], Loss: {loss.item():.4f}') PY

  • 常用工具与 IDE:
    • Jupyter Notebook:pip install notebook;jupyter notebook
    • PyCharm:设置 Project Interpreter 为虚拟环境的解释器(如 pytorch_env/bin/python)
    • VS Code:选择虚拟环境解释器(which python 应指向 venv 或 conda env)
  • 常用加速与调试建议:
    • 优先使用 conda 管理二进制依赖,避免 pip 与系统库冲突
    • 固定版本:在 requirements.txt 或 environment.yml 中锁定 torch/torchvision/torchaudio 与 python 版本,便于复现实验。

0