如何在Ubuntu上运行PyTorch程序
导读:在 Ubuntu 上运行 PyTorch 的完整流程 一 准备环境 更新系统并安装基础工具: sudo apt update && sudo apt upgrade sudo apt install -y python3...
在 Ubuntu 上运行 PyTorch 的完整流程
一 准备环境
- 更新系统并安装基础工具:
- sudo apt update & & sudo apt upgrade
- sudo apt install -y python3 python3-pip build-essential
- 建议使用虚拟环境隔离依赖:
- 使用 venv:python3 -m venv venv & & source venv/bin/activate
- 或使用 conda:conda create -n pytorch python=3.10 -y & & conda activate pytorch
- 升级 pip:python -m pip install -U pip
- 可选:如需多版本 Python,可用 pyenv 管理版本后再创建虚拟环境。
二 安装 PyTorch
- 选择安装方式(CPU 或 GPU)。优先从 PyTorch 官网获取与你系统、CUDA 版本匹配的命令:https://pytorch.org/get-started/locally/
- 常见安装命令示例:
- CPU 版本:pip install torch torchvision torchaudio
- GPU 版本(示例为 CUDA 11.8):pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- 使用 conda(GPU,含 cudatoolkit):conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch
- 使用 conda(CPU only):conda install pytorch torchvision torchaudio cpuonly -c pytorch
- 安装完成后建议立即进行验证(见下一节)。
三 验证安装与运行第一个程序
- 验证安装(在已激活的虚拟环境中执行):
- 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”)
- model.to(device); x = x.to(device); y = y.to(device)。
四 GPU 环境检查与常见问题
- 检查 NVIDIA 驱动与工具链:
- 驱动:nvidia-smi(能显示驱动版本与 GPU 列表)
- CUDA 编译器:nvcc --version(若提示未找到,说明未安装或未加入 PATH)
- 驱动与 CUDA/cuDNN 的关系与提示:
- 使用 pip 安装 GPU 版 PyTorch 时,官方预编译包通常已包含所需 CUDA 运行时,一般无需单独安装完整 CUDA Toolkit;但需确保 NVIDIA 驱动版本满足要求。
- 若选择 conda 安装并指定 cudatoolkit,conda 会管理对应版本的 CUDA 运行时依赖。
- 若需要源码编译或特定版本,才可能需要自行配置 CUDA/cuDNN 与相应环境变量(如 PATH、LD_LIBRARY_PATH)。
五 部署与进阶
- 以服务方式运行:
- 使用 Flask/Django 将模型封装为 HTTP 服务,示例:
- from flask import Flask, request, jsonify import torch app = Flask(name) @app.route(‘/predict’, methods=[‘POST’]) def predict(): data = request.json[‘data’] input_tensor = torch.tensor(data, dtype=torch.float32).unsqueeze(0) with torch.no_grad(): output = model(input_tensor) _, predicted = torch.max(output, 1) return jsonify({ ‘prediction’: predicted.item()} ) if name == ‘main’: app.run(host=‘0.0.0.0’, port=5000)
- 使用 Flask/Django 将模型封装为 HTTP 服务,示例:
- 容器化部署:
- 示例 Dockerfile:
- FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD [“python”, “app.py”]
- 构建与运行:
- docker build -t my-pytorch-app .
- docker run -p 5000:5000 my-pytorch-app
- 示例 Dockerfile:
- 生产建议:
- 使用 Gunicorn/uWSGI + Nginx 托管 Flask 服务
- 模型推理使用 torch.no_grad()、批处理与合适的 num_workers
- 固定依赖版本(requirements.txt/conda env.yml),便于复现与回滚。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上运行PyTorch程序
本文地址: https://pptw.com/jishu/767306.html
