Tensorflow:如何将冻结模型转换为已保存模型

时间:2018-05-17 14:59:54

标签: python python-3.x tensorflow model

我正在尝试从此处转换此冻结模型(扩展名.pb):

https://www.dropbox.com/s/bb7n78hq5owyjr0/tf_model_pb.zip?dl=0

Saved Model

有可能吗?你能否分享一下确切的代码来将这个pb文件转换为已保存的型号?

1 个答案:

答案 0 :(得分:1)

首先回答,这样做是有可能的,但很麻烦,因为在将ckpt冻结为pb模型期间,SavedModel所需的所有变量都转换为常量或其他类型。在tf中,将“常量”还原为“变量”有点复杂,例如:

# node is a constant
node = tf.Constant([1, 2])
output_node = tf.NodeDef()
output_node.op = "Variable"
output_node.name = node.name
dtype = node.attr["dtype"].type
data = node.attr["value"].tensor
output_node.attr["dtype"].type = dtype
output_node.attr["value"].CopyFrom(tf.AttrValue(tensor=data))

有关将常量节点转换为其他类型的详细信息,请参见此answer

因此,从ckpt文件中冻结SavedModel 是最简单,最直接的方法。