温馨提示×

centos pytorch怎么调试

小樊
45
2026-10-06 08:45:36
栏目: 智能运维

在 CentOS 上调试 PyTorch 程序,常见方式和步骤如下(从简单到进阶):


一、最常用:使用 Python 调试器(pdb / ipdb)

适合定位代码逻辑错误。

1. 使用 pdb

import pdb
pdb.set_trace()

运行脚本后会在该位置停下来,可用:

  • n 下一步
  • s 进入函数
  • c 继续
  • l 查看代码
  • p 变量 打印变量

2. 使用 ipdb(推荐)

pip install ipdb
import ipdb
ipdb.set_trace()

二、使用 IDE 调试(最方便)

PyCharm(CentOS 可装)

  • 新建 Python 解释器(指向 CentOS 的 python)
  • 设置断点 → Debug 运行
  • 支持变量查看、GPU 状态、调用栈

VS Code(远程开发)

  1. 安装 Remote - SSH
  2. 连接 CentOS 服务器
  3. 配置 launch.json
{
  "name": "Python: PyTorch",
  "type": "python",
  "request": "launch",
  "program": "train.py",
  "console": "integratedTerminal"
}

三、PyTorch 专属调试技巧

1. 检查 CUDA / 设备

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

2. 张量形状调试

x = model(input)
print(x.shape)

3. 使用 torch.autograd.detect_anomaly

用于定位 NaN / 梯度爆炸

with torch.autograd.detect_anomaly():
    output = model(input)
    loss = criterion(output, target)
    loss.backward()

四、多进程 / DataLoader 调试

CentOS 上常见 DataLoader(num_workers > 0) 报错难定位。

方法 1:先设为 0

DataLoader(..., num_workers=0)

方法 2:捕获子进程错误

import multiprocessing
multiprocessing.set_start_method('spawn', force=True)

五、核心转储 / 崩溃调试(进阶)

如果是 C++ / CUDA 崩溃:

1. 查看 core dump

ulimit -c unlimited
python train.py

2. 使用 gdb

gdb python
run train.py
bt

六、日志调试(训练常用)

import logging
logging.basicConfig(level=logging.INFO)
logging.info(f"batch {i}, loss {loss.item()}")

七、推荐组合(实战)

✅ 新手:ipdb + num_workers=0
✅ 训练调试:logging + detect_anomaly
✅ 复杂项目:VS Code Remote + PyTorch


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

  • CentOS 版本(7 / 8 / Stream)
  • PyTorch 是否用 GPU
  • 是训练报错还是推理报错

我可以给你更具体的调试方案。

0 踩