获取一个 python 实例的总内存和 cpu 使用情况
Getting total memory and cpu usage for one python instance
我正在使用 keras 制作和测试不同类型的神经网络,需要数据来比较它们。我需要有关 cpu 的数据以及训练和测试期间使用的内存。这是在 python 中,当我环顾四周时,我发现了很多关于 psutil 的建议。然而,我所看到的一切似乎都抓住了当前的用法。
目前的使用量是多少?比如那个特定时刻使用的内存量?我如何使用它来获取整个程序使用的总 cpu 和内存,或者至少获取 NN 正在训练和测试的代码部分。感谢您的帮助!
psutil 是收集此类信息的好建议。如果将此代码合并到现有的 keras 代码中,则可以在调用 cpu_times() 方法时收集有关 cpu 进程使用情况的信息
import psutil
process = psutil.Process()
print(process.cpu_times())
cpu_times()返回值的含义解释here。它是累积的,所以如果你想知道你的 keras 代码总共使用了多少 CPU 时间,只需在退出 python 脚本之前 运行 它。
要获取进程的内存使用信息,在调用 memory_info() 的特定时间,您可以 运行 在我们声明的同一个 process
对象上执行此操作之前
print(process.memory_info())
cpu 和内存结果的确切含义取决于您使用的平台。内存信息结构解释here
一个更全面的示例展示了如何在 运行 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)
我正在使用 keras 制作和测试不同类型的神经网络,需要数据来比较它们。我需要有关 cpu 的数据以及训练和测试期间使用的内存。这是在 python 中,当我环顾四周时,我发现了很多关于 psutil 的建议。然而,我所看到的一切似乎都抓住了当前的用法。
目前的使用量是多少?比如那个特定时刻使用的内存量?我如何使用它来获取整个程序使用的总 cpu 和内存,或者至少获取 NN 正在训练和测试的代码部分。感谢您的帮助!
psutil 是收集此类信息的好建议。如果将此代码合并到现有的 keras 代码中,则可以在调用 cpu_times() 方法时收集有关 cpu 进程使用情况的信息
import psutil
process = psutil.Process()
print(process.cpu_times())
cpu_times()返回值的含义解释here。它是累积的,所以如果你想知道你的 keras 代码总共使用了多少 CPU 时间,只需在退出 python 脚本之前 运行 它。
要获取进程的内存使用信息,在调用 memory_info() 的特定时间,您可以 运行 在我们声明的同一个 process
对象上执行此操作之前
print(process.memory_info())
cpu 和内存结果的确切含义取决于您使用的平台。内存信息结构解释here
一个更全面的示例展示了如何在 运行 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)