You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Keras的.h5模型文件转换为TensorFlow的.meta等格式文件?

将Keras .h5模型转换为TensorFlow Checkpoint格式(含.meta等文件)

嘿,我来帮你搞定这个转换问题!其实把Keras保存的.h5模型转成TensorFlow的checkpoint格式(也就是你需要的.meta、checkpoint、.data和.index文件)并不复杂,下面是一步步的实操方法:

步骤1:加载Keras的.h5模型

首先我们需要把已保存的Keras模型加载到内存中,这里用TensorFlow整合后的Keras API即可:

import tensorflow as tf
from tensorflow import keras

# 加载你的.h5模型
model = keras.models.load_model('name.h5')

步骤2:保存为TensorFlow Checkpoint格式

因为你需要用tf.train.import_meta_graph来导入计算图,这里我们需要切换到TensorFlow 1.x的兼容模式(如果你用的是TF2.x版本),然后通过会话保存模型:

# 禁用 eager execution,切换到TF1.x兼容模式
tf.compat.v1.disable_eager_execution()

# 获取当前Keras的会话
sess = tf.compat.v1.keras.backend.get_session()

# 创建Saver对象,用于保存checkpoint
saver = tf.compat.v1.train.Saver()

# 保存模型到指定目录,这里会自动生成所需的四类文件
saver.save(sess, './tf_checkpoint/my_model')

执行完这段代码后,./tf_checkpoint/目录下就会出现你需要的四个文件:

  • my_model.meta:计算图结构文件
  • my_model.data-00000-of-00001:模型权重数据
  • my_model.index:权重索引文件
  • checkpoint:记录最新checkpoint信息的文本文件

步骤3:验证导入计算图

接下来你就可以用tf.train.import_meta_graph来导入计算图了,示例代码如下:

import tensorflow as tf

# 创建会话
sess = tf.compat.v1.Session()

# 导入.meta文件中的计算图
saver = tf.compat.v1.train.import_meta_graph('./tf_checkpoint/my_model.meta')

# 加载权重参数
saver.restore(sess, tf.compat.v1.train.latest_checkpoint('./tf_checkpoint/'))

# 如果你需要获取图中的输入输出张量,可以先通过model.summary()查看层名称
graph = tf.compat.v1.get_default_graph()
input_tensor = graph.get_tensor_by_name('your_input_layer_name:0')  # 替换为实际输入层名称
output_tensor = graph.get_tensor_by_name('your_output_layer_name:0')  # 替换为实际输出层名称

一些注意事项

  • 尽量保证保存Keras模型时的TensorFlow版本和转换时的版本一致,避免出现兼容性问题。
  • 如果你的模型是用纯TF2.x构建的,其实官方更推荐使用SavedModel格式,但如果你明确需要checkpoint格式,上面的方法完全适用。
  • 可以通过运行model.summary()来查看模型各层的名称,这样能准确找到你需要的张量名称。

内容的提问来源于stack exchange,提问作者Meysam Sadeghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:25:48