我正在尝试从此处转换此冻结模型(扩展名.pb):
https://www.dropbox.com/s/bb7n78hq5owyjr0/tf_model_pb.zip?dl=0
有可能吗?你能否分享一下确切的代码来将这个pb文件转换为已保存的型号?
答案 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 是最简单,最直接的方法。