【问题标题】:Returning a MemitResult object and a function call when using memit magic in IPython在 IPython 中使用 memit 魔术时返回一个 MemitResult 对象和一个函数调用
【发布时间】:2020-09-02 16:00:48
【问题描述】:

所以我遇到的问题是我想在 Google Colab 上的 iPython 中测量一个细胞系的内存消耗和时间,该行也返回一个对象。 我正在使用memory-profiler 执行此操作,因此我可以将所有基准测试结果自动存储在一个文件中。

我发现memit -o 给了我一个MemitResult 对象,但是 问题是对象分配给出了未定义的m̀odel

NameError: name 'model' is not defined

简短的 MWE:

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

理想情况下,我会在一个火车函数调用中分配所有 3 个变量,时间、内存和对象, 以节省培训时间。

【问题讨论】:

    标签: python ipython cell google-colaboratory


    【解决方案1】:

    最后,我使用Weights and biases同时跟踪GPU和内存消耗。

    设置非常简单,但是我还没有找到如何提取最大值、最小值等信息。

    设置:

    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 对象的属性

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多