我正在将经过训练的tf.keras模型转换为tf冻结模型,以与c ++ api一起使用。在TF 2.0上冻结模型时遇到错误
model_path = '/home/Desktop/model.hdf5'
model = tf.keras.models.load_model(model_path)
tf.keras.experimental.export_savedmodel(model,newdir)
此后,将创建一个变量文件夹,其中包含文件[checkpoint,variables.data-00000-of-00001,variables.index],Saved_model.pb和在newdir中创建的assests文件夹。
我正在尝试使用saved_model.pb和variables.data-00000-of-00001文件来获取单个.pb Frozen_graph
python /home/tensorflow/python/tools/freeze_graph.py --input_graph=/home/Desktop/tf_models/saved_model.pb --input_checkpoint=/home/Desktop/tf_models/variables/variables.data-00000-of-00001 --output_graph=/home/Desktop/tf_models/frozen_graph.pb --output_node_names=classes --input_binary=true
我希望有一个冻结的.pb文件,但遇到如下错误:
回溯(最近通话最近):文件 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, 在run_main()文件中的第492行 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, 第489行,在run_main app.run(main = my_main,argv = [sys.argv [0]] + 未解析)文件 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/platform/app.py”, 40行 _run(main = main,argv = argv,flags_parser = _parse_flags_tolerate_undef)文件 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/absl/app.py”, 运行中的300号线 _run_main(main,args)文件“ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/absl/app.py”, _run_main sys.exit(main(argv))文件中的第251行 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, 第488行,在my_main = lambda未使用的参数:main(unused_args,flags) 文件 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, 主标志中的第382行.saved_model_tags,checkpoint_version)文件 “ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, 第341行,在Frozen_graph input_graph_def = _parse_input_graph_proto(input_graph,input_binary)文件“ /home/vsrira10/anaconda2/envs/tf2/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py”, _parse_input_graph_proto中的第252行 input_graph_def.ParseFromString(f.read()) google.protobuf.message.DecodeError:解析消息时出错
我愿意接受替代使用freeze_graph脚本的建议。谢谢。