keras模型保存的3种形式

目录

一、保存整个模型

二、保存模型结构

三、保存模型权重


一、保存整个模型

model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

  • 模型的结构
  • 模型的权重
  • 训练配置(损失函数,优化器,准确率等)
  • 优化器的状态,以便于从上次训练中断的地方

       前提是已经安装python的h5py包:

       from keras.models import load_model

       当再一次使用时可以model.load_model(filepath)载入模型。

二、保存模型结构

 model.to_jason()将模型序列化保存为json文件,里面记录了网络的整体结构, 各个层的参数设置等信息. 将json字符串保存到文件.

open(‘filename.json','w').write(json_string)

from keras.models import model_form_json

json_string=open('filename.json').read()

model=model_from_json(json_string)

除了json格式,还可以保存为yaml格式的字符串,形式与JSON一样

三、保存模型权重

model.save_weights()

经过调参后网络的输出精度比较满意后,可以将训练好的网络权重参数保存下来,可通过下面的代码利用HDF5进行保存:
model.save_weights(‘model_weights.h5’)

使用时加载模型: 
model.load_weights(‘model_weights.h5’)

如果需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,可以通过层名字来加载模型: 
model.load_weights('my_model_weights.h5', by_name=True)

因此建模时最好给每个层定义名字。

猜你喜欢

转载自blog.csdn.net/weixin_41770169/article/details/85697281
今日推荐