tf2保存加载模型

第一 HDF5

可以直接保存整个模型,将模型保存为HDF5文件

# 创建模型实例
model = create_model()
# 保存模型到HDF5文件
model.save('my_model.h5')
# 读取模型
model = keras.models.load_model('my_model.h5')

第二 save_model形式

# 创建并训练一个新的模型实例。
model = create_model()
model.fit(train_images, train_labels, epochs=5)

# 将整个模型另存为 SavedModel。
!mkdir -p saved_model
model.save('saved_model/my_model') 

/加载模型
new_model = tf.keras.models.load_model('saved_model/my_model')

# 检查其架构
new_model.summary()

第三 自定义

当出现报错得时候 – NotImplementedError: Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work for subclassed models, because such models are defined via the body of a Python method, which isn’t safely serializable. Consider saving to the Tensorflow SavedModel format (by setting save_format=“tf”) or using save_weights.

因为:h5保存方式适用于功能模型或者顺序模型 不适用于子类模型
要使用下面这种方式
tf2保存加载模型_第1张图片

# 创建模型
model = create_model()
# 保存权重
model.save_weights('model_weight')
# 创建新模型读取权重
newModel = create_model()
# 读取权重到新模型
newModel.load_weights('model_weight')

tf2保存加载模型_第2张图片

自定义官方还提供了不同方法:

tf2保存加载模型_第3张图片

其他

更改代码试用了一下 save_model 不保存为h5格式的 仍然是报错,报错如下 --故 仍采用上面第三种的方法
tf2保存加载模型_第4张图片

tf2保存加载模型_第5张图片

你可能感兴趣的:(知识_问题_专栏,代码知识积累,tensorflow,python,深度学习)