在linux環境下對pytorch程序進行運行狀態監控,可以借助多種工具和方式實現。以下是一些常見的做法:
-
nvidia-smi: 若你使用NVIDIA顯卡進行深度學習訓練,nvidia-smi是一個非常實用的工具,它能展示GPU的使用情況,例如顯存占用、溫度、功耗等信息。
watch -n 1 nvidia-smi
此命令會每隔一秒刷新一次GPU的狀態。
-
htop: htop是一款交互式的進程查看工具,它可以展示系統中各個進程的資源消耗情況,包括CPU與內存的使用情況。
htop
在htop界面中,你可以看到詳細的進程信息,并可通過鍵盤操作進行排序和篩選。
-
top: top命令是Linux下的常用系統監控工具,它能夠顯示當前系統中各進程的資源占用情況。
top
-
psutil: psutil是一個跨平臺的python庫,用于獲取系統使用情況以及相關進程的信息。你可以在PyTorch程序中利用psutil來監控內存與CPU的使用情況。
import psutil <h1>獲取當前進程的信息</h1><p>process = psutil.Process()</p><h1>展示內存與CPU使用情況</h1><p>print(f"Memory usage: {process.memory_info().rss / 1024 ** 2} MB") print(f"CPU usage: {process.cpu_percent(interval=1)}%")
-
TensorBoard: TensorBoard是tensorflow的可視化工具,但它同樣適用于PyTorch項目。通過使用torch.utils.tensorboard模塊,你可以在PyTorch程序中記錄各類指標,并在TensorBoard中進行查看。
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"> writer.add_scalar('Loss/train', train_loss, epoch) # 更多記錄...
writer.close()
然后在終端中啟動TensorBoard:
tensorboard --logdir=runs
-
自定義監控腳本: 你可以編寫自己的監控腳本,定期采集程序的關鍵性能指標,如內存使用量、GPU狀態、損失值等,并將這些數據輸出到日志文件或控制臺中。
根據你的具體需求和需要監控的內容類型,可以選擇合適的工具。通常情況下,將這些工具結合使用,可以實現對系統性能和程序運行狀態的全面掌控。