利用tf.saved_model导出keras模型

本文介绍了如何将保存的Keras h5py模型转换为TensorFlow的pb模型。通过读取model.json和weights.h5,可以使用tf.saved_model将模型结构和权重导出到model/1目录下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keras一般保存为h5py格式的模型,当然也可以直接使用tf.saved_model保存为pb模型,那如果想将保存的h5py模型导出为pb模型该怎么办呢?以下代码就可以完成该项功能。

假设我们保存了keras的模型为model.json(结构)和weights.h5(权重),

首先读取keras模型:

# tensorflow == 1.13.1
import tensorflow as tf

def load_keras_model(model_path, weights_path):
    fr = open(model_path, "r")
    model_json = fr.read()
    fr.close()
    model = tf.keras.models.model_from_json(model_json, custom_objects={"tf":tf})
    model.load_weights(weights_path)
    return model

然后转换tensor name并导出模型:

model_export_dir = "./model/1"
model = load_keras_model("model.json", "weights.h5")
name_to_inputs = {i.name.split(":")[0]:i for i in model.inputs}
name_to_outputs = {i.name:i for i in model.outputs}
print(name_to_inputs)
print(name_to_outputs)
tf.saved_model.simple_save(tf.keras.backend.get_session(),
                           model_export_dir,
                           inputs=name_to_inputs,
     
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值