tensorflow打印所有变量名_【他山之石】Tensorflow模型保存方式大汇总

本文介绍了Tensorflow中不同模型保存方法,包括GraphDef、SignatureDef、tf.saved_model和freeze_graph,并提供了打印所有变量名的技巧。同时,文章提到了tf.train.Saver的文件结构以及使用tf.train.CheckpointManager检查点管理。此外,还提及了在Tensorflow中自定义SignatureDef以及打包多个模型和函数的方法。
摘要由CSDN通过智能技术生成

“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。

作者:知乎—卡西法

地址:https://www.zhihu.com/people/kumonoue

GraphDef

GraphDef是Tensorflow中序列化的图结构。在tensorflow中,计算图被保存为Protobuf格式(pb)。pb可以只保存图的结构,也可以保存结构加权重。

SignatureDef

定义图结构输入输出的节点名称和属性,一般存储于.index文件中。 查看方法:
list(meta_graph.signature_def.items())

tf.saved_model

将动态图保存成权重(./variables)、计算图(keras_metadata.pb)、权重和计算图(saved_model.pb)三种文件。
# 保存model = tf.saved_model.save(    obj, export_dir, signatures=None, options=None)# 读取model= tf.saved_model.load(    export_dir, tags=None, options=None)# 推理infer = model.signatures["serving_default"]

freeze_grap

from tensorflow.python.tools.freeze_graph import freeze_graph_with_def_protos

该函数将图和权重以常量的形式保存在一张静态图中(pb)。

其中的核心代码是:
output_graph_def = convert_variables_to_constants(session, input_graph_def, output_names)output_graph = 'pb_model/model.pb'  # 保存地址with tf.gfile.GFile(output_graph, 'wb') as f:    f.write(output_graph_def.SerializeToString())
参考: https://github.com/tensorflow/tensorflow/blob/f5b9c2225584c79539ff6746b3417e8505443a4b/tensorflow/python/tools/freeze_graph.py

tf.train.Saver()

详细可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值