在 CentOS 上调试 PyTorch 程序,常见方式取决于你想“调试什么”:
下面按使用场景给你一套实用方案。
python -m pdb train.py
常用命令:
b 行号 打断点c 继续n 单步s 进入函数l 查看代码p 变量 打印变量✅ 适合:模型逻辑、数据加载、loss 计算错误
pip install ipdb
在代码中:
import ipdb
ipdb.set_trace()
VSCode(最推荐)
✅ 适合:复杂训练代码
import torch
torch.autograd.set_detect_anomaly(True)
可定位 NaN / Inf 反向传播问题
export CUDA_LAUNCH_BLOCKING=1
⚠️ 会大幅降低速度,但能精确定位报错行
x.isnan().any()
x.isinf().any()
x.device
x.shape
nvidia-smi
watch -n 1 nvidia-smi
from torch.profiler import profile, ProfilerActivity
with profile(
activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA]
) as prof:
train_step()
print(prof.key_averages().table(sort_by="cuda_time"))
torch.utils.data.DataLoader(..., num_workers=8, pin_memory=True)
python setup.py build --debug install
gdb --args python train.py
cuda-gdb python train.py
PyTorch 新版本要求:
ldd --version
建议 CentOS 7+,最好 CentOS 8 / Rocky / Alma
yum install -y libgomp mesa-libGL
✅ 日常训练
✅ 训练崩溃
如果你愿意,可以告诉我:
我可以直接给你针对性的调试命令。