我使用了retrain.py脚本来重新训练初始V3模型。从这个脚本,我得到几个文件:output_graph.pb文件。,labels.txt和3个检查点文件(.meta,.data.index)使用writer_version = tf.train.SaverDef.V2。根据一些想法,我创建了我的冷冻脚本。
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必须是字符串映射到Tensors / Variables的字符串名称。不是变量:Tensor(“final_training_ops / biases / final_biases:0”,shape =(2,),dtype = float32)。
我知道在retrain.py中有一个名为final_training_ops / biases / final_biases:0的节点但我只对last_result节点感兴趣,它将用于获取分类结果。互联网上的一些帖子提到.pbtxt + .ckpt文件(使用writer_version = tf.train.SaverDef.V1)来冻结模型,但我的计算机冻结了。我希望有人可以帮我弄清楚该怎么做。