我训练了一个深度学习模型并将其保存在 pickle 文件中。由于某种原因,我必须稍微更改从中获取 pickle 文件的代码。我花了几个月的时间进行培训,无论如何我都想使用最后创建的 pickle 文件,因为权重将保持不变。有什么办法可以查看和更改 pickle 文件的内容吗?
编辑:例如,如果我们有 stylegan2 预训练网络 pickle 文件,假设我们对 G_synthesis 函数代码(存在于 https://github.com/NVlabs/stylegan2/blob/master/training/networks_stylegan2.py 中)进行了更改,那么我们如何使用旧的 pickle 文件。
最佳答案
如果你只是想改变一些功能但保持相同的权重,你可以像这样将权重复制到新模型吗:
import pickle
from old_model_file import old_model
from new_model_file import new_model
# 1.load pickle file
with open('old.pickle','rb') as f:
old_pickle = pickle.load(f)
# 2.create model based new model
new_pickle = new_model()
# 3. copy weights from old model
'''
##you should copy all weights from old_pickle to new_pickle
##for example:
new_pickle.weight_A = old_pickle.weight_A
new_pickle.weight_B = old_pickle.weight_B
'''
# 4. save the new model
with open('new.pickle','wb') as f:
pickle.dump(new_pickle,f)
这是你想要的吗?
关于python - 更改 Pickle 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65980118/