CheckPoint、h5、pkl格式保存模型和参数
1. TensorFlow
1、CheckPoint(.ckpt)
在训练 TensorFlow 模型时,每迭代若干轮需要保存一次权值到磁盘,称为“checkpoint”。这种格式文件是由 tf.train.Saver() 对象调用 saver.save() 生成的,只包含若干 Variables 对象序列化后的数据,不包含图结构,所以只给 checkpoint 模型不提供代码是无法重新构建计算图的。
2. Keras
2.1 保存整个模型(.h5)
model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:
模型的结构、模型的权重、训练配置(损失函数,优化器,准确率等)、优化器的状态,以便于从上次训练中断的地方:
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5'
2.2 保存模型结构
model.to_jason()将模型序列化保存为json文件,里面记录了网络的整体结构, 各个层的参数设置等信息. 将json字符串保存到文件.
除了json格式,还可以保存为yaml格式的字符串,形式与JSON一样:
json_string = model.to_json() # save as JSON
yaml_string = model.to_yaml() # save as YAML
2.3 保存模型权重(.h5)
经过调参后网络的输出精度比较满意后,可以将训练好的网络权重参数保存下来,可通过下面的代码利用HDF5进行保存:
model.save_weights(‘model_weights.h5’)
2.4 加载整个模型
model.save('my_model.h5')
model = load_model('my_model.h5')
2.5 加载模型结构
# model reconstruction from JSON:
from keras.models import model_from_json
model = model_from_json(json_string)
# model reconstruction from YAML
model = model_from_yaml(yaml_string)
2.6 加载模型权重
model.save_weights('my_model_weights.h5')
model.load_weights('my_model_weights.h5') #初始化一个完全相同的模型
model.load_weights('my_model_weights.h5', by_name=True) #加载权重到不同的网络结构,例如fine-tuning;可以通过层名字来加载
3. PyTorch
3.1 保存和加载整个模型(.pkl)
torch.save(model_object, ‘model.pkl’)
model = torch.load(‘model.pkl’)
3.2 仅保存和加载模型参数(推荐使用)
torch.save(model_object.state_dict(), ‘params.pkl’)
model_object.load_state_dict(torch.load(‘params.pkl’))
3.3 pkl与pth格式文件的区别
pytorch保存数据的格式为.pkl文件或者.pth文件
假设我有一个训练好的模型名叫net1,则
torch.save(net1, ‘7-net.pth’) # 保存整个神经网络的结构和模型参数
torch.save(net1, ‘7-net.pkl’)
torch.save(net1.state_dict(), ‘7-net_params.pth’) # 只保存神经网络的模型参数
torch.save(net1.state_dict(), ‘7-net_params.pkl’)
如果你是使用torch.save方法来进行模型参数的保存,那保存文件的后缀其实没有任何影响,结果都是一样的,很多.pkl的文件也是用torch.save保存下来的,和.pth文件一模一样的。。。
biaxin uti
cashman casino slots http://onlinecasinouse.com/# - best online casinos free casino games casino slots cashman casino slots