温馨提示×

linux pytorch如何炼丹

小樊
40
2026-10-25 01:17:26
栏目: 智能运维

“炼丹”是深度学习圈对训练模型的戏称。下面从 Linux 环境搭建 → PyTorch 训练流程 → 实用技巧 给你一套清晰路线。


一、Linux 下 PyTorch 炼丹环境

1. 系统准备(常见)

  • Ubuntu 20.04 / 22.04
  • 有 NVIDIA 显卡(炼丹基本靠 GPU)

2. 安装显卡驱动 + CUDA

nvidia-smi

能看到 GPU 信息说明驱动 OK。

安装 CUDA(示例):

sudo apt install nvidia-cuda-toolkit

3. 创建 Python 环境(强烈推荐)

conda create -n dan python=3.10
conda activate dan

4. 安装 PyTorch

pip install torch torchvision torchaudio

或官方指定版本(带 CUDA):

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118

验证:

import torch
print(torch.cuda.is_available())

二、PyTorch 炼丹基本流程

1. 数据(Data)

from torch.utils.data import DataLoader, Dataset

class MyDataset(Dataset):
    def __len__(self): ...
    def __getitem__(self, idx): ...
loader = DataLoader(dataset, batch_size=32, shuffle=True)

2. 模型(Model)

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(784, 10)

    def forward(self, x):
        return self.fc(x)

3. 训练循环(核心“炼丹”)

model = Net().cuda()
opt = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.CrossEntropyLoss()

for epoch in range(10):
    for x, y in loader:
        x, y = x.cuda(), y.cuda()
        opt.zero_grad()
        out = model(x)
        loss = loss_fn(out, y)
        loss.backward()
        opt.step()

4. 保存 / 加载模型

torch.save(model.state_dict(), "model.pth")
model.load_state_dict(torch.load("model.pth"))

三、Linux 炼丹实用技巧(重要)

✅ 1. 后台训练(别占终端)

nohup python train.py > log.txt 2>&1 &

查看:

tail -f log.txt

✅ 2. 多卡训练

model = nn.DataParallel(model)
# 或
model = model.to("cuda")

✅ 3. 监控 GPU

watch -n 1 nvidia-smi

✅ 4. 防止“炸丹”

  • 学习率不要太大
  • 用 torch.cuda.empty_cache()
  • 加 try-except 保存断点

✅ 5. 常用“丹方”工具

  • TensorBoard
from torch.utils.tensorboard import SummaryWriter
  • Weights & Biases(wandb)
  • Hydra(参数管理)

四、新手建议路线

  1. 先跑通 MNIST
  2. 再训 CNN / Transformer
  3. 学会调参(lr、batch、epoch)
  4. 上自己的数据

如果你愿意,可以告诉我:

  • 你是新手还是已有基础
  • 想训 什么任务(图像 / NLP / 强化学习)
  • 用 单卡还是服务器

我可以直接给你一套可复制的炼丹模板。

0 踩