在CentOS系统中监控PyTorch训练过程,可以采用以下几种方法:
TensorBoard是TensorFlow的可视化工具,但也可以与PyTorch一起使用。通过TensorBoard,你可以监控损失函数、准确率、梯度分布等。
pip install 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 --logdir=runs
然后在浏览器中打开http://localhost:6006即可查看监控界面。
tqdm是一个快速、可扩展的进度条库,可以用来监控训练进度。
pip install 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):
# 训练代码...
psutil是一个跨平台的库,用于访问系统使用情况和相关进程信息。
pip install 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()
# 训练代码...
如果你使用的是NVIDIA GPU,可以使用nccl-smi来监控GPU的使用情况。
确保你已经安装了NCCL库。你可以从NVIDIA官网下载并安装。
在终端中运行以下命令来启动nccl-smi:
watch -n 1 nvidia-smi
这将每秒刷新一次GPU的使用情况。
通过以上方法,你可以在CentOS系统中有效地监控PyTorch训练过程。