
在Linux环境下对PyTorch程序进行运行状态监控,可以借助多种工具和方式实现。以下是一些常见的做法:
-
nvidia-smi: 若你使用NVIDIA显卡进行深度学习训练,nvidia-smi是一个非常实用的工具,它能展示GPU的使用情况,例如显存占用、温度、功耗等信息。
<code> watch -n 1 nvidia-smi</code>
此命令会每隔一秒刷新一次GPU的状态。
-
htop: htop是一款交互式的进程查看工具,它可以展示系统中各个进程的资源消耗情况,包括CPU与内存的使用情况。
<code> htop</code>
在htop界面中,你可以看到详细的进程信息,并可通过键盘操作进行排序和筛选。
-
top: top命令是Linux下的常用系统监控工具,它能够显示当前系统中各进程的资源占用情况。
<code> top</code>
-
psutil: psutil是一个跨平台的Python库,用于获取系统使用情况以及相关进程的信息。你可以在PyTorch程序中利用psutil来监控内存与CPU的使用情况。
<code> import psutil <h1>获取当前进程的信息</h1><p>process = psutil.Process()</p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/ai/1303" title="人民网AIGC-X"><img src="https://img.php.cn/upload/ai_manual/001/431/639/68b6d862c2dda905.jpeg" alt="人民网AIGC-X" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a href="/ai/1303" title="人民网AIGC-X">人民网AIGC-X</a> <p>国内科研机构联合推出的AI生成内容检测工具</p> </div> <a href="/ai/1303" title="人民网AIGC-X" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div><h1>展示内存与CPU使用情况</h1><p>print(f"Memory usage: {process.memory_info().rss / 1024 ** 2} MB") print(f"CPU usage: {process.cpu_percent(interval=1)}%")</code> -
TensorBoard: TensorBoard是TensorFlow的可视化工具,但它同样适用于PyTorch项目。通过使用torch.utils.tensorboard模块,你可以在PyTorch程序中记录各类指标,并在TensorBoard中进行查看。
<code> from torch.utils.tensorboard import SummaryWriter</p><p>writer = SummaryWriter('runs/experiment-1')</p><h1>在训练循环中记录损失和其他指标</h1><p>for epoch in range(num_epochs):</p><h1>训练代码...</h1><pre class="brush:php;toolbar:false;"><code> writer.add_scalar('Loss/train', train_loss, epoch) # 更多记录...</code>writer.close()
然后在终端中启动TensorBoard:
<code> tensorboard --logdir=runs</code>
打开浏览器并访问http://localhost:6006即可进入TensorBoard界面。
自定义监控脚本: 你可以编写自己的监控脚本,定期采集程序的关键性能指标,如内存使用量、GPU状态、损失值等,并将这些数据输出到日志文件或控制台中。
根据你的具体需求和需要监控的内容类型,可以选择合适的工具。通常情况下,将这些工具结合使用,可以实现对系统性能和程序运行状态的全面掌控。








