在Ubuntu系统中监控PyTorch程序的运行状态,可以采用以下几种方法:
nvidia-smi
如果你使用的是NVIDIA GPU进行训练,nvidia-smi
是一个非常有用的工具。它可以显示GPU的使用情况、内存消耗、温度等信息。
watch -n 1 nvidia-smi
这个命令会每秒刷新一次GPU的状态。
htop
htop
是一个交互式的进程查看器,可以用来监控CPU和内存的使用情况。
sudo apt install htop
htop
在htop
界面中,你可以看到各个进程的详细信息,包括CPU和内存使用率。
top
top
是另一个常用的进程查看工具,虽然不如htop
直观,但也可以用来监控进程状态。
top
psutil
psutil
是一个跨平台的库,可以用来获取系统使用情况和进程信息。你可以在Python脚本中使用它来监控PyTorch进程。
首先安装psutil
:
pip install psutil
然后在你的Python脚本中添加以下代码:
import psutil
import os
# 获取当前脚本的PID
pid = os.getpid()
# 获取进程信息
process = psutil.Process(pid)
# 打印进程信息
print(f"CPU Usage: {process.cpu_percent(interval=1.0)}%")
print(f"Memory Usage: {process.memory_info().rss / 1024 ** 2} MB")
TensorBoard是TensorFlow的可视化工具,但也可以用来监控PyTorch程序。你需要安装tensorboard
和torch.utils.tensorboard
。
pip install tensorboard torch.utils.tensorboard
在你的PyTorch脚本中添加以下代码:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('runs/experiment-1')
# 在训练循环中记录损失和其他指标
for epoch in range(num_epochs):
# 训练代码...
loss = compute_loss()
writer.add_scalar('Loss/train', loss, epoch)
writer.close()
然后在终端中启动TensorBoard:
tensorboard --logdir=runs
打开浏览器并访问http://localhost:6006
,你就可以看到训练过程中的各种指标。
pytorch-metrics
pytorch-metrics
是一个用于计算和记录PyTorch模型性能指标的库。
首先安装pytorch-metrics
:
pip install pytorch-metrics
然后在你的Python脚本中使用它来记录和监控指标。
from pytorch_metrics import Accuracy
accuracy = Accuracy()
for epoch in range(num_epochs):
# 训练代码...
predictions = model(inputs)
accuracy.update(predictions, targets)
print(f"Accuracy: {accuracy.compute()}")
通过这些方法,你可以有效地监控PyTorch程序在Ubuntu系统中的运行状态。