gpt4 book ai didi

tensorflow - 如何在 TensorFlow v1 中使用 freeze_graph.py 工具

转载 作者:行者123 更新时间:2023-12-03 00:43:41 24 4
gpt4 key购买 nike

是否可以使用 freeze_graph.py在 TensorFlow v1 中通过 saver.save 保存模型的工具?如果是这样,怎么办?

我的代码大致如下:

supervisor = tf.train.Supervisor(logdir=output_directory_path)

with supervisor.managed_session() as session:
# train the model here
supervisor.saver.save(session, output_directory_path)

这会生成一个包含以下内容的目录:

checkpoint
output
output-16640.data-00000-of-00001
output-16640.index
output-16640.meta

其中output是包含中间训练步骤的文件的目录。其余的都是文件。

我的理解是,这是 saver v2 格式的元图(.meta 文件)及其变量(.data* 文件)。这些文件包含 freeze_graph.py 工具所需的数据,但尚不清楚如何告诉 freeze_graph.py 工具从这些文件加载​​数据。

所有这些尝试都会产生错误消息输入检查点“...”不存在!

python freeze_graph.py --input_checkpoint checkpoint --output_graph /tmp/out
python freeze_graph.py --input_checkpoint . --output_graph /tmp/out
python freeze_graph.py --input_checkpoint output-16640 --output_graph /tmp/out

freeze_graph.py 代码在 --input_checkpoint 旁边包含注释如果我们使用 Saver V2 格式,“input_checkpoint”可能是一个前缀使用了 参数,所以我原以为上述尝试中的第三个会起作用,但是,唉,没有。

最佳答案

正如 @mrry 在评论中指出的那样,这个特定问题的答案是在输出前缀前添加 ./。完成此操作后,我发现还需要为 --input_graph--output_name_names 参数提供值。

命令现在看起来像

python freeze_graph.py \
--input_graph output/graph.pbtxt \
--input_checkpoint ./output-16640 \
--output_graph /tmp/out \
--output_node_names <name>

不幸的是,我的图表包含预加载数据的变量,这会导致 freeze_graph.py 失败,并显示类似 Attempting to use uninitialized value ... 的消息;解决后续问题超出了本问题的范围。

关于tensorflow - 如何在 TensorFlow v1 中使用 freeze_graph.py 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com