Возвращает объект MemitResult и вызов функции при использовании memit magic в IPython

#python #ipython #cell #google-colaboratory

#питон #ipython ( ипифон ) #ячейка #google-совместная лаборатория #python #ipython

Вопрос:

Итак, проблема, с которой я столкнулся, заключается в том, что я хочу измерить потребление памяти и время для строки ячейки в IPython в Google Colab, где строка также возвращает объект. Я делаю это с memory-profiler , поэтому я могу автоматически сохранять все результаты бенчмарка в файл.

Я обнаружил, что это memit -o дает мне MemitResult объект, но проблема в том, что присвоение объекта дает неопределенное m̀odel :

NameError: name 'model' is not defined

Короткий МВЭ:

 %%time
import pmdarima as pm
trainMemory =  %memit  -o  model= pm.auto_arima(df["y"], seasonal=True, m=12, maxiter=10, njobs = -1)
  

В идеале я бы назначил все 3 переменные для времени, памяти и объекта в одном вызове функции поезда,
чтобы сэкономить на времени обучения.

Ответ №1:

В конце концов, я использовал веса и отклонения для одновременного отслеживания использования графического процессора и памяти.

Настройка была действительно простой, однако я еще не нашел, как извлекать информацию, такую как maximum, mininum и т.д.

Настройка:

 import wandb
import pmdarima as pm
wandb.init()  
model= pm.auto_arima(df["y"], seasonal=True, m=12, maxiter=10, njobs = -1)
  

Затем на веб-сайте вы можете увидеть потребление во время выполнения

Панель мониторинга для использования системы

Оказывается, вы можете получить максимальное использование через api вместо просмотра диаграмм

 import wandb 
api = wandb.Api() 
run = api.run(f"YOURNAME/{wandb.run.name}/{wandb.run.id}") 
system_metrics = run.history(stream = 'events') print(system_metrics["system.gpu.0.memory"].max())
system_metrics.to_csv("metrics.csv")
  

Затем вы можете получить доступ к свойствам объекта system_metrics

Комментарии:

1. Дополнительная информация об API