Профилирование процессора и памяти в одном скрипте Python - PullRequest
0 голосов
/ 26 мая 2019

Я запускаю какой-то скрипт на Python для распознавания какого-либо изображения.Целью теста является выполнение некоторой задачи и получение CPU_usage, Memory_usage и всего execution_time для любой данной задачи.

Итак, изначально после создания обученной модели я выполняю тест, чтобы идентифицировать изображение и измерить точность.Для этой цели я создал небольшой скрипт на Python и запустил некоторый алгоритм прогнозирования.

Итак, теперь мои основные намерения и цели - просто знать CPU_usage, Memory_usage и execution_time для запуска этого скрипта на python.Далее я упоминаю код для лучшего понимания

from imageai.Prediction.Custom import CustomImagePrediction
import os
import psutil
import cProfile
import time
import timeit

def run_predict():

    start_time = timeit.default_timer()
    prediction = CustomImagePrediction()
    prediction.setModelTypeAsResNet()
    prediction.setModelPath("idenprof_061-0.7933.h5")
    prediction.setJsonPath("model_class.json")
    prediction.loadModel(num_objects=10)

    predictions, probabilities = prediction.predictImage("image.jpg", result_count=3)

    for eachPrediction, eachProbability in zip(predictions, probabilities):
        a = (eachPrediction , " : " , eachProbability)
        time.sleep(0.5)
        print(a)


    end_time = timeit.default_timer()
    print("time required for executing this fuction : ",end_time - start_time)


    pid = os.getpid()
    py = psutil.Process(pid)
    memoryUse = py.memory_info()[0]/2.**30
    print('memory use:', memoryUse)
    cpuUse = py.cpu_percent()
    print('CPU usage : ', cpuUse)

    pr = cProfile.Profile()
    pr.enable()

    pr.disable()
    pr.print_stats(sort='time')


run_predict()

Теперь я хотел бы знать CPU_usage, Memory_usage и execution_time для запуска этого скрипта.Хотя я получаю Memory_usage и execution_time для запуска этого скрипта, но я не получаю информацию CPU_usage.Моя главная цель - запустить указанный скрипт python, я хочу получить результат точности для распознавания изображений, а также запустить тот же скрипт, я хочу получить те (CPU_usage, Memory_usage и execution_time)Информация.

Далее я собираюсь упомянуть вывод, который я получаю, запустив вышеупомянутый python скрипт

Instructions for updating:
Colocations handled automatically by placer.
2019-05-26 06:00:59.907030: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-05-26 06:00:59.930062: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 1992000000 Hz
2019-05-26 06:00:59.931310: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x740fd20 executing computations on platform Host. Devices:
2019-05-26 06:00:59.931349: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): <undefined>, <undefined>
('police', ' : ', '99.86363053321838')
('pilot', ' : ', '0.13637046795338392')
('firefighter', ' : ', '1.232255097960433e-06')
time required for executing this fuction :  6.337834449000184
memory use: 0.4300689697265625
CPU usage :  0.0
         1 function calls in 0.000 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
...