繁体   English   中英

获取一个Python实例的总内存和CPU使用率

[英]Getting total memory and cpu usage for one python instance

我正在使用keras制作和测试不同类型的神经网络,并需要数据进行比较。 我需要有关培训和测试期间使用的CPU和内存的数据。 这是在python中,当我环顾四周时,我发现了很多关于psutil的建议。 但是我所看到的一切似乎都抓住了当前的用法。

目前的用途是什么? 喜欢那个特定时刻使用的内存量吗? 我如何使用它来获取整个程序或至少是NN正在训练和测试的部分代码所使用的总cpu和内存。 谢谢你的帮助!

psutil是收集此类信息的好建议。 如果将此代码合并到现有的keras代码中,则可以在调用cpu_times()方法时收集有关进程的cpu使用情况的信息

import psutil

process = psutil.Process()
print(process.cpu_times())

这里说明了cpu_times()返回的值的含义。 它是累积的,因此,如果您想知道您的keras代码总共使用了多少CPU时间,只需在退出python脚本之前运行它即可。

要获取您的进程的内存使用情况信息,在特定时间调用memory_info()时,您可以在我们之前声明的同一process对象上运行它

print(process.memory_info())

CPU和内存结果的确切含义取决于您使用的平台。 此处说明内存信息结构

一个更全面的示例显示了如何在运行keras培训时使用Advanced Python Scheduler在后台进行cpu和内存测量

import psutil

import time
import os

from apscheduler.schedulers.background import BackgroundScheduler

process = psutil.Process()

def get_info():
    print(process.cpu_times(), process.memory_info())

if __name__ == '__main__':
    scheduler = BackgroundScheduler()
    scheduler.add_job(get_info, 'interval', seconds=3)
    scheduler.start()

    # run the code you want to measure here
    # replace this nonsense loop
    now = time.time()
    finish = now + 60

    while time.time() < finish:
        print("Some progress message: {}".format(time.time()))
        time.sleep(10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM