在 CentOS 上调试 PyTorch 程序,常见做法和普通 Linux 环境类似,下面按「常见调试手段 → 工具 → 示例」来说明。
import torch
print(x.shape, x.dtype)
print(torch.cuda.is_available())
print(model)
适合:
pdb(Python 原生调试器)python -m pdb train.py
常用命令:
| 命令 | 说明 |
|---|---|
b 行号 |
打断点 |
c |
继续执行 |
n |
下一行 |
s |
进入函数 |
p 变量 |
打印变量 |
q |
退出 |
或在代码中:
import pdb
pdb.set_trace()
torch.cuda.current_device()
torch.cuda.device_count()
torch.cuda.get_device_name(0)
常见错误:
x = x.cuda()
model = model.cuda()
torch.autograd.detect_anomaly()(梯度问题)with torch.autograd.detect_anomaly():
loss.backward()
可定位:
def hook(module, input, output):
print(output.shape)
model.layer1.register_forward_hook(hook)
适合:
配置:
PyCharm → Settings → Python Interpreter → SSH Interpreter
支持:
// .vscode/launch.json
{
"type": "python",
"request": "launch",
"program": "train.py",
"console": "integratedTerminal"
}
export CUDA_VISIBLE_DEVICES=0
python train.py
再:
torchrun --nproc_per_node=2 train.py
import os
print(f"[Rank {os.getpid()}] x.shape={x.shape}")
gcc --version
ldd --version
PyTorch 报错:
undefined symbol
解决:
conda install pytorch torchvision -c pytorch
CentOS 服务器一般无 GUI
✅ 用:
✅ 新手
print + pdb
✅ 进阶
PyCharm Remote / VS Code SSH
✅ 深度学习专项
autograd.detect_anomaly + hook
如果你愿意,可以告诉我:
我可以给你 针对性的调试方案。