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

问题描述

我喜欢使用 dill.dump_session 来保存我的笔记本状态。 但是,我经常加载不可选择的对象(dask-clusters、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

我用

删除了两个有问题的对象(以及之后的摘要字典)
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)
...

感谢任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)