tensorflow 模型权重导出实例

今天早睡
今天早睡
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何将TensorFlow保存的CKPT格式模型权重导出为H5文件,以便兼容Caffe、Keras等其他框架。通过tf.train.NewCheckpointReader读取CKPT文件,结合h5py库遍历变量并写入H5格式,实现跨框架模型权重的迁移与复用。

TensorFlow CKPT模型权重导出至H5格式详解

在TensorFlow中保存模型权重时,通常采用tf.train.Saver().save函数进行存储。生成的ckpt文件属于二进制格式,无法直接打开查看,这给将模型权重导入到其他深度学习框架(如Caffe、Keras等)带来不便。

为了解决这一问题,TensorFlow提供了tf.train.NewCheckpointReader函数,可用于读取和查看ckpt文件中的权重数据。利用该函数,我们可以提取权重信息并将其导出为其他格式。


import tensorflow as tf
import h5py

cpktLogFileName = r'./checkpoint/checkpoint' #cpkt 文件路径
with open(cpktLogFileName, 'r') as f:
  #权重节点往往会保留多个epoch的数据,此处获取最后的权重数据   
  cpktFileName = f.readline().split('"')[1]   

h5FileName = r'./model/net_classification.h5'

reader = tf.train.NewCheckpointReader(cpktFileName)
f = h5py.File(h5FileName, 'w')
t_g = None
for key in sorted(reader.get_variable_to_shape_map()):
  # 权重名称需根据自己网络名称自行修改
  if key.endswith('w') or key.endswith('biases'):
    keySplits = key.split(r'/')
    keyDict = keySplits[1] + '/' + keySplits[1] + '/' + keySplits[2]
    f[keyDict] = reader.get_tensor(key)

以上关于TensorFlow模型权重导出的方法仅供参考,希望能为读者提供有益的帮助。如有更多疑问或需要进一步支持,欢迎持续关注本站获取最新技术资讯。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表