是否可以将该freeze_graph.py工具与saver.saveTensorFlow v1中保存的模型一起使用?如果是这样,怎么样?
我的代码看起来大致如下:
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)
Run Code Online (Sandbox Code Playgroud)
这会生成一个包含以下内容
checkpoint
output
output-16640.data-00000-of-00001
output-16640.index
output-16640.meta
Run Code Online (Sandbox Code Playgroud)
output包含中间培训步骤文件的目录在哪里.其余的是文件.
我的理解是这是一个元图(.meta文件)及其变量(.data*文件)的保护程序v2格式.这些文件包含该freeze_graph.py工具所需的数据,但不清楚如何告诉freeze_graph.py工具从这些文件加载数据.
所有这些尝试都会产生错误消息 Input checkpoint '...' doesn't exist!
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
Run Code Online (Sandbox Code Playgroud)
该freeze_graph.py代码包括注释'input_checkpoint' may be a prefix if we're using Saver V2 format的位置旁边的--input_checkpoint参数使用,因此我还以为上面的尝试的第三个会工作,但,唉,没有.
Dan*_*haw 12
正如@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>
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的图表包含预加载数据的变量,导致freeze_graph.py失败的消息如Attempting to use uninitialized value ...:解决这个后续问题超出了这个问题的范围.
| 归档时间: |
|
| 查看次数: |
11602 次 |
| 最近记录: |