#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