python - 更改 Pickle 文件的内容

标签 python pickle

我训练了一个深度学习模型并将其保存在 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/

相关文章:

多个用户运行相同脚本的Python脚本

python - 什么样的对象可以作为 Spark RDD 中的元素?

python - 带坐标的数组的透视变换

python - 从记录数组中取出一个元素时给出 void

python - 使用 pyspark 时 dill 和 pickle 之间的冲突

python - 如何在 Bluemix Object Storage 中转储 joblib 或 pickle 文件?

python-3.x - 如何让dill在python3中加载python2 pickle

Python- 为什么我的 Paho Mqtt 消息与我发送的消息不同?

python - Python 中 pickle 时出现 EOFError

python - 编辑 pickle 数据