在iPython控制台中保存脚本运行之间的参数

我想找到iPython控制台中与Spyder控制台命令等效的功能。

当我使用Spyder应用程序时,我的所有变量在脚本运行之间都会被保存。这不仅意味着我可以在脚本运行结束后检查这些值,还意味着这些值会在下一次脚本运行时被保留。

Spyder控制台命令(在iPython控制台中不起作用):
runfile('some_file.py', wdir='/some/project/folder')

iPython控制台中有类似的命令:
%run -i "some_script.py"

问题是这个命令会在新脚本开始执行时删除旧的值。

为什么这很重要?

假设我的脚本除了其他事情之外,还构建了一个模型,这个模型的构建时间比我愿意等待的时间要长(每次都这样)。在Spyder中,我可以第一次运行它,然后注释掉这行代码,下次运行时只运行剩余的代码,并从工作内存中提取模型。

(是的,我知道我可以将模型保存为pickle格式等,但这完全不是重点)

编辑:
这有点尴尬,但出于某种原因,我现在对-i标志没有任何问题了。所以我能够用它获得所需的功能。可能是因为更新了Anaconda的版本。


回答:

你可以使用dill(Python pickle的扩展)来保存整个会话。因此,每次脚本结束时,你都会保存当前会话。

import dill
dill.dump_session("temp.pkl")

每次脚本开始时,你都会加载之前的会话。

import dill
dill.load_session("temp.pkl")

这样可以保留会话中的所有变量,你可以注释掉不需要更改的变量。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注