微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。