假设我有a.py
:
import tensorflow as tf
class A:
name = "Class A"
dump.py
:
import pickle
from a import A
a = A()
with open("a.pickled", "wb") as f:
f.write(pickle.dump(a))
load.py
:
import pickle
with open("a.pickled", "rb") as f:
a = pickle.load(f.read())
当pythonpickles
调用对象a
时,它实际上也会拉入tensorflow
。因此,当对象在load.py
中被反序列化时,它导入tensorflow
,并带来大量与tensorflow
相关的昂贵初始化。我想知道我们是否可以在dump.py
中删除不需要的tensorflow
导入而不修改a.py
我在dumpy.py
中尝试了类似的方法,但这对我不起作用:
import pickle
from a import A
# Delete tensorflow related import from cache
import sys
names = [name for name in sys.modules.keys() if "tensorflow" in name]
for name in names:
del sys.modules[name]
a = A()
with open("a.pickled", "wb") as f:
f.write(pickle.dump(a))
目前没有回答
相关问题 更多 >
编程相关推荐