我喜欢使用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变量中。手动删除";输出"/"_哦"-钥匙/物品没有帮助,但
%reset out
终于可以再次选择会话了!
天啊,我真的希望这是根本问题。。。