Tensorflow:如何.META,。数据和模型的.index文件转换成一个graph.pb文件
在tensorflow从以下6个文件产生的刮擦培训:Tensorflow:如何.META,。数据和模型的.index文件转换成一个graph.pb文件
- events.out.tfevents。 1503494436.06L7-BRM738
- model.ckpt-22480.meta
- 关卡
- model.ckpt-22480.data-00000-的-00001
- model.ckpt-22480.index
- graph.pbtxt
我想他们(或仅需要的)转换成一个文件graph.pb能够转移到我的Android应用程序。
我试过脚本freeze_graph.py
,但它需要输入已经输入的input.pb我没有。 (我只有前面提到的这6个文件)。如何继续获取这一个freezed_graph.pb文件?我看到了几条线索,但没有一条为我工作。
你可以使用这个简单的脚本来做到这一点。但是您必须指定输出节点的名称。
import tensorflow as tf
meta_path = 'model.ckpt-22480.meta' # Your .meta file
output_node_names = ['output:0'] # Output nodes
with tf.Session() as sess:
# Restore the graph
saver = tf.train.import_meta_graph(meta_path)
# Load weights
saver.restore(sess,tf.train.latest_checkpoint('.'))
# Freeze the graph
frozen_graph_def = tf.graph_util.convert_variables_to_constants(
sess,
sess.graph_def,
output_node_names)
# Save the frozen graph
with open('output_graph.pb', 'wb') as f:
f.write(frozen_graph_def.SerializeToString())
有没有简单的方法来获取输出节点名称? – rambossa
我正在尝试做同样的事情。有没有办法找到输出节点名称? – blueether
您可以使用[summarize_graph](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/graph_transforms#inspecting-graphs)实用程序。 – velikodniy
因为它可能对别人有帮助,所以我在github上的答案后也回答这个问题;-)。 我想你可以尝试这样的事情(在tensorflow /蟒蛇freeze_graph脚本/工具):
python freeze_graph.py --input_graph=/path/to/graph.pbtxt --input_checkpoint=/path/to/model.ckpt-22480 --input_binary=false --output_graph=/path/to/frozen_graph.pb --output_node_names="the nodes that you want to output e.g. InceptionV3/Predictions/Reshape_1 for Inception V3 "
这里最重要的标志是--input_binary = false作为文件graph.pbtxt是文本格式。我认为它对应于所需的graph.pb,它是二进制格式的等价物。
关于output_node_names,这对我来说真的很让人困惑,因为我仍然对这部分有些问题,但是您可以使用tensorflow中的summarize_graph脚本,它可以将pb或pbtxt作为输入。
问候,
斯蒂芬
在这里看到:https://stackoverflow.com/questions/45433231/freezing-a-cnn-tensorflow-model-into-a-pb-file/45437684#45437684 –
你是怎么得到'graph.pbtxt'的?如果它是你模型的图形,你可以用'freeze.py'来冻结它。 '.pbtxt'。 – velikodniy
我在完成培训后在训练日志中找到了graph.pbtxt文件。然而,在训练结束之前,它被挽救了。在以前保存的图形状态下检查它。对于从头开始的培训,我使用了脚本:train_image_classifier.py。对于培训,我使用了我自己的图片(.jpg),在使用脚本之前,我必须将其转换为.tfrecord文件build_image_data.py – Rafal