“炼丹”是深度学习圈对训练模型的戏称。下面从 Linux 环境搭建 → PyTorch 训练流程 → 实用技巧 给你一套清晰路线。
nvidia-smi
能看到 GPU 信息说明驱动 OK。
安装 CUDA(示例):
sudo apt install nvidia-cuda-toolkit
conda create -n dan python=3.10
conda activate dan
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())
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)
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)
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()
torch.save(model.state_dict(), "model.pth")
model.load_state_dict(torch.load("model.pth"))
nohup python train.py > log.txt 2>&1 &
查看:
tail -f log.txt
model = nn.DataParallel(model)
# 或
model = model.to("cuda")
watch -n 1 nvidia-smi
torch.cuda.empty_cache()try-except 保存断点from torch.utils.tensorboard import SummaryWriter
如果你愿意,可以告诉我:
我可以直接给你一套可复制的炼丹模板。