温馨提示×

pytorch centos怎么调试

小樊
37
2026-10-18 02:20:52
栏目: 智能运维

在 CentOS 上调试 PyTorch 程序,常见方式取决于你想“调试什么”:

  • Python 层逻辑错误
  • CUDA / 算子报错
  • 性能问题
  • C++ / 自定义算子

下面按使用场景给你一套实用方案。


一、Python 层调试(最常用)

1. 使用 pdb(内置)

python -m pdb train.py

常用命令:

  • b 行号 打断点
  • c 继续
  • n 单步
  • s 进入函数
  • l 查看代码
  • p 变量 打印变量

✅ 适合:模型逻辑、数据加载、loss 计算错误


2. 使用 IPython / ipdb(推荐)

pip install ipdb

在代码中:

import ipdb
ipdb.set_trace()

3. 使用 PyCharm / VSCode 远程调试(CentOS 服务器)

VSCode(最推荐)

  • 安装 Remote SSH
  • 配置 Python 解释器
  • 直接断点调试

✅ 适合:复杂训练代码


二、PyTorch 报错调试技巧

1. 打开详细报错

import torch
torch.autograd.set_detect_anomaly(True)

可定位 NaN / Inf 反向传播问题


2. CUDA 报错调试

export CUDA_LAUNCH_BLOCKING=1

⚠️ 会大幅降低速度,但能精确定位报错行


3. 检查张量状态

x.isnan().any()
x.isinf().any()
x.device
x.shape

三、性能调试(训练慢 / GPU 利用率低)

1. 查看 GPU 状态

nvidia-smi
watch -n 1 nvidia-smi

2. PyTorch Profiler(推荐)

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"))

3. 数据加载瓶颈

torch.utils.data.DataLoader(..., num_workers=8, pin_memory=True)

四、C++ / 自定义算子调试

1. 编译 Debug 版本

python setup.py build --debug install

2. 使用 gdb

gdb --args python train.py

3. CUDA 调试(高级)

cuda-gdb python train.py

五、CentOS 常见坑

1. glibc 版本低

PyTorch 新版本要求:

ldd --version

建议 CentOS 7+,最好 CentOS 8 / Rocky / Alma


2. 缺少依赖

yum install -y libgomp mesa-libGL

六、推荐调试组合(实战)

✅ 日常训练

  • VSCode Remote
  • ipdb
  • CUDA_LAUNCH_BLOCKING=1

✅ 训练崩溃

  • torch.autograd.set_detect_anomaly
  • nvidia-smi
  • Profiler

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

  • CentOS 版本
  • PyTorch 版本
  • 是训练慢 / 报错 / NaN / 自定义算子?

我可以直接给你针对性的调试命令。

0 踩