Dill dump_session:使Jupyter会话能够再次进行pickle



我喜欢使用dill.dump_session来保存我的笔记本状态。然而,我经常加载不可拾取的对象(dask集群、keras模型(。有没有什么方法可以将它们从我的环境中删除,然后使用dump_session((?

我试图用dill.detect.errors:找到有问题的对象

(带有globals((和locals(((

problemDict={}
exceptions=["Out","get_ipython","exit","quit"]
for name, obj in globals().items():
if name in exceptions or name[0]=="_"::
continue
if dill.detect.errors(obj) is not None:
print(name)
problemDict[name]=obj

我用删除了两个有问题的对象(以及之后的摘要dict(

for name, obj in problemDict.items():
print(name)
del(globals()[name])

它们从我的命名空间中消失了,但我仍然得到了相同的错误:

TypeError:无法pickle"tensorflow.python._tf_stack.StackSummary"对象

keras模型是否仍然";隐藏";在某处导入是否已经使会话无法拾取?不幸的是,dill.dump_session源代码对我没有太大帮助。(https://github.com/uqfoundation/dill/blob/master/dill/_dill.py#L343)

编辑:;dill.detect.trace(False("-产出也于事无补。不知道该怎么办:

...
# T4
2021-04-14 14:12:34,726 # T4
# D2
2021-04-14 14:12:34,727 # D2
# D2
2021-04-14 14:12:34,728 # D2
D2: <dict object at 0x7ffa9030a6c0>
2021-04-14 14:12:34,728 D2: <dict object at 0x7ffa9030a6c0>
D2: <dict object at 0x7ffa90305b80>
2021-04-14 14:12:34,736 D2: <dict object at 0x7ffa90305b80>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
...

感谢您的帮助!

虽然原来的笔记本关闭时间很长(无法解决(,但我也遇到了类似的问题。同样,有些变量是不可选择的,并且似乎位于del之后的某个ipython变量中。手动删除";输出"/&quot_哦&quot-钥匙/物品没有帮助,但

%reset out

终于可以再次选择会话了!

天啊,我真的希望这是根本问题。。。

相关内容

  • 没有找到相关文章

最新更新