Python TensorFlow中的误差冻结模型

Python TensorFlow中的误差冻结模型,python,tensorflow,Python,Tensorflow,我使用retain.py脚本对inception V3模型进行了再培训。从这个脚本中,我使用writer_version=tf.train.SaverDef.V2获得了几个文件:output_graph.pb文件、labels.txt文件和3个检查点文件(.meta、.data.index)。根据一些想法,我创建了我的冻结脚本 input_graph_name = "output_graph.pb" output_graph_name = "frozen_graph.pb" checkpoint

我使用retain.py脚本对inception V3模型进行了再培训。从这个脚本中,我使用writer_version=tf.train.SaverDef.V2获得了几个文件:output_graph.pb文件、labels.txt文件和3个检查点文件(.meta、.data.index)。根据一些想法,我创建了我的冻结脚本

input_graph_name = "output_graph.pb"
output_graph_name = "frozen_graph.pb"
checkpoint_path = "C:\\Program Files (x86)\\Python 3.5.2\\tensorflow\\final\\output\\tmp\\map-0"
input_graph_path = os.path.join('C:\\Program Files (x86)\\Python 3.5.2\\tensorflow\\final\\output\\tmp', input_graph_name)
input_saver_def_path = ""
input_binary = True
output_node_names = "final_result"
restore_op_name = "save/restore_all"
filename_tensor_name = "save/Const:0"

freeze_graph.freeze_graph(input_graph_path,
                          input_saver_def_path,
                          input_binary,
                          checkpoint_path,
                          output_node_names,
                          restore_op_name,
                          filename_tensor_name,
                          output_graph_path,
                          clear_devices,
                          "")
但是,我得到了一个错误:

TypeError:names_to_saveables必须是将字符串名称映射到张量/变量的dict。不是一个变量:张量(“最终训练/偏差/最终偏差:0”,shape=(2,),dtype=float32)


我知道retain.py中有一个名为final_training_ops/biases/final_biases:0的节点,但我只对final_result节点感兴趣,该节点将用于获取分类结果。互联网上的一些帖子提到了.pbtxt+.ckpt文件(使用writer_version=tf.train.SaverDef.V1)来冻结模型,但我的电脑冻结了。我希望有人能帮我弄清楚该做什么。

我知道这不是你正在做的,但是,作为替代,我通常更喜欢从正在运行的会话中获取冻结的图形,而不是从检查点获取冻结的图形,你可以使用以下函数(然后调用以实际获取二进制或文本图形文件)@jdehesa感谢您的反馈。我想在不排除任何可能方法的情况下对冻结的图形进行ge处理。我会试试你的方法。我知道这不是你正在做的,但是,作为一种替代方法,我通常更喜欢从正在运行的会话中获取冻结的图形,而不是从检查点获取冻结的图形,你可以使用这样的函数(然后你可以调用以实际获取二进制或文本图形文件)。@jdehesa感谢你的反馈。我想在不排除任何可能方法的情况下对冻结的图形进行ge处理。我会试试你的方法。