在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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