Machine learning 在iPython控制台中的脚本运行之间保存参数
我想找到与Spyder控制台命令等效的iPython控制台 当我使用Spyder应用程序时,所有变量都会在脚本运行之间保存。 我这样说不仅意味着我可以在脚本完成运行后检查这些值,而且这些值将保留在下一次脚本运行中 Spyder控制台命令(在iPython控制台中不起作用):Machine learning 在iPython控制台中的脚本运行之间保存参数,machine-learning,scikit-learn,ipython,anaconda,spyder,Machine Learning,Scikit Learn,Ipython,Anaconda,Spyder,我想找到与Spyder控制台命令等效的iPython控制台 当我使用Spyder应用程序时,所有变量都会在脚本运行之间保存。 我这样说不仅意味着我可以在脚本完成运行后检查这些值,而且这些值将保留在下一次脚本运行中 Spyder控制台命令(在iPython控制台中不起作用): runfile('some_file.py',wdir='/some/project/folder') iPython控制台中有一个类似的命令: %run-i“some_script.py” 问题在于,当新脚本开始执行时,此
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")
这将保留会话中的所有变量,因此您可以注释掉不需要更改的变量
%run
文档明确说明脚本是在干净的环境中运行的(没有任何交互变量)。交互式命名空间在运行后更新。但是有一个-i
参数来运行IPython命名空间中的文件。我没有用过那个选项。使用%run???
查看详细信息。能否给出一个脚本的小示例,该脚本可以根据需要在Spyder
中运行,但不能在ipython
中运行?