1. 安装系统依赖
在Linux系统上安装PyTorch前,需先安装必要的系统依赖(以Debian/Ubuntu和RPM/CentOS为例):
sudo apt update && 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,安装编译工具、线性代数库、图像处理库及Python开发环境。sudo yum install -y gcc-c++ cmake git openblas-devel lapack-devel libjpeg-turbo-devel libpng-devel libtiff-devel ffmpeg-devel python3-devel python3-pip,完成类似依赖安装。2. 安装Python与pip
确保系统已安装Python3(≥3.6)及pip3:
sudo apt install -y python3 python3-pipsudo yum install -y python3 python3-pippython3 --version和pip3 --version验证版本,确认Python环境正常。3. 创建虚拟环境(推荐)
为避免项目依赖冲突,建议使用虚拟环境隔离PyTorch及其依赖:
python3 -m venv pytorch_env创建虚拟环境,之后通过source pytorch_env/bin/activate激活。wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh),然后运行bash Miniconda3-latest-Linux-x86_64.sh并按提示安装;安装后通过conda create -n pytorch_env python=3.8创建环境,conda activate pytorch_env激活。4. 安装PyTorch
根据硬件配置选择安装CPU版或GPU版PyTorch:
pip3 install torch torchvision torchaudioconda install pytorch torchvision torchaudio cpuonly -c pytorchpip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118(将cu118替换为实际CUDA版本,如cu117、cu111)conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia(同样替换cudatoolkit版本)。5. 验证PyTorch安装
安装完成后,通过Python代码验证PyTorch是否正常工作及是否支持GPU:
import torch
print("PyTorch版本:", torch.__version__)  # 输出版本号,确认安装成功
print("CUDA可用性:", torch.cuda.is_available())  # 若为True,说明GPU支持正常
若torch.cuda.is_available()返回True,则表示GPU加速可用。
6. 配置CUDA环境(GPU用户必选)
若使用GPU版PyTorch,需确保CUDA环境变量正确配置,使PyTorch能找到CUDA库:
export PATH=/usr/local/cuda/bin:$PATH  # 添加CUDA二进制文件路径到PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH  # 添加CUDA库路径到LD_LIBRARY_PATH
可将上述命令添加到~/.bashrc或~/.zshrc中,实现开机自动加载。
7. 编写并运行PyTorch训练脚本
创建Python脚本(如train.py),实现模型定义、数据加载、训练循环等核心逻辑。以下是一个简单的全连接神经网络训练示例:
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
# 1. 准备数据(示例:随机生成数据)
inputs = torch.randn(1000, 10)  # 1000个样本,每个样本10个特征
labels = torch.randint(0, 2, (1000,))  # 1000个二分类标签
dataset = TensorDataset(inputs, labels)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)
# 2. 定义模型
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(10, 50)  # 输入层→隐藏层
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(50, 2)  # 隐藏层→输出层
    def forward(self, x):
        x = self.relu(self.fc1(x))
        x = self.fc2(x)
        return x
model = SimpleNet()
# 3. 定义损失函数与优化器
criterion = nn.CrossEntropyLoss()  # 交叉熵损失(适用于分类任务)
optimizer = optim.SGD(model.parameters(), lr=0.01)  # 随机梯度下降优化器
# 4. 训练循环
for epoch in range(10):  # 训练10个epoch
    for batch_inputs, batch_labels in dataloader:
        # 前向传播
        outputs = model(batch_inputs)
        loss = criterion(outputs, batch_labels)
        
        # 反向传播与优化
        optimizer.zero_grad()  # 清空梯度
        loss.backward()  # 反向传播计算梯度
        optimizer.step()  # 更新模型参数
    
    print(f"Epoch [{epoch+1}/10], Loss: {loss.item():.4f}")  # 打印当前epoch的损失
通过python3 train.py运行脚本,观察训练过程中的损失变化,确认模型是否正常训练。
8. 可选优化:使用Jupyter Notebook
若偏好交互式编程,可安装Jupyter Notebook:pip install notebook,然后运行jupyter notebook启动服务,在浏览器中编写和运行PyTorch代码,提升开发效率。