温馨提示×

在CentOS中如何监控PyTorch训练过程

小樊
61
2025-08-25 01:51:06
栏目: 智能运维

在CentOS系统中监控PyTorch训练过程,可以采用以下几种方法:

1. 使用TensorBoard

TensorBoard是TensorFlow的可视化工具,但也可以与PyTorch一起使用。通过TensorBoard,你可以监控损失函数、准确率、梯度分布等。

安装TensorBoard

pip install tensorboard

在PyTorch中使用TensorBoard

在你的PyTorch代码中,添加以下内容来启动TensorBoard:

from torch.utils.tensorboard import SummaryWriter

# 创建一个SummaryWriter对象
writer = SummaryWriter('runs/experiment_1')

# 在训练循环中记录数据
for epoch in range(num_epochs):
    for i, (inputs, labels) in enumerate(train_loader):
        # 训练代码...
        
        # 记录损失
        writer.add_scalar('Loss/train', loss.item(), epoch * len(train_loader) + i)
        
        # 记录准确率
        _, predicted = torch.max(outputs.data, 1)
        accuracy = (predicted == labels).sum().item()
        writer.add_scalar('Accuracy/train', accuracy, epoch * len(train_loader) + i)

# 关闭SummaryWriter
writer.close()

启动TensorBoard

在终端中运行以下命令来启动TensorBoard:

tensorboard --logdir=runs

然后在浏览器中打开http://localhost:6006即可查看监控界面。

2. 使用tqdm

tqdm是一个快速、可扩展的进度条库,可以用来监控训练进度。

安装tqdm

pip install tqdm

在PyTorch中使用tqdm

在你的训练循环中,使用tqdm来包装你的数据加载器:

from tqdm import tqdm

for epoch in range(num_epochs):
    loop = tqdm(train_loader, leave=True)
    for batch_idx, (data, target) in enumerate(loop):
        # 训练代码...

3. 使用psutil监控系统资源

psutil是一个跨平台的库,用于访问系统使用情况和相关进程信息。

安装psutil

pip install psutil

在PyTorch中使用psutil

你可以在训练过程中定期检查CPU和内存使用情况:

import psutil

def print_system_usage():
    cpu_percent = psutil.cpu_percent(interval=1)
    memory_info = psutil.virtual_memory()
    print(f'CPU Usage: {cpu_percent}%')
    print(f'Memory Usage: {memory_info.percent}%')

# 在训练循环中定期调用
for epoch in range(num_epochs):
    print_system_usage()
    # 训练代码...

4. 使用nccl-smi监控GPU使用情况

如果你使用的是NVIDIA GPU,可以使用nccl-smi来监控GPU的使用情况。

安装NCCL

确保你已经安装了NCCL库。你可以从NVIDIA官网下载并安装。

启动nccl-smi

在终端中运行以下命令来启动nccl-smi

watch -n 1 nvidia-smi

这将每秒刷新一次GPU的使用情况。

通过以上方法,你可以在CentOS系统中有效地监控PyTorch训练过程。

0