Tensorflow:导入预训练模型(mobilenet,.pb,.ckpt)

时间:2018-01-08 20:32:43

标签: python tensorflow

我一直在研究在tensorflow中导入预训练模型的检查点。 这样做的目的是让我可以检查它的结构,并将其用于图像 分类

具体来说,是移动网络模型found here。我找不到任何东西 从各种 *。ckpt。* 文件导入模型的合理方法,以及 一些论坛嗅探我找到了Github用户StanislawAntol写的一个要点 声称将所述文件转换为冻结模型ProtoBuf(.pb)文件。该 要点是here

运行脚本给了我一堆.pb文件,我希望我可以使用它 用。的确,this SO question似乎回应了我的祈祷。

我一直在尝试以下代码的变体,但无济于事。任何对象 由<workflow-app xmlns='uri:oozie:workflow:0.5' name='Workflow_Name' xmlns:sla="uri:oozie:sla:0.2"> <global> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <configuration> <property> <name>mapreduce.job.queuename</name> <value>${queueName}</value> </property> </configuration> </global> <start to="firstFork"/> <fork name="firstFork"> <path start="Job1"/> <path start="Job2"/> <path start="Job3"/> <path start="Job4"/> <path start="Job5"/> </fork> <action name="Job1" retry-max="2" retry-interval="10"> <shell xmlns="uri:oozie:shell-action:0.3"> <exec>SCRIPT.sh</exec> <file>${Path}/SCRIPT.sh#SCRIPT.sh</file> <file>${configFile}</file> </shell> <ok to="firstJoining"/> <error to="EMAIL"/> 返回的似乎是无类型。

tf.import_graph_def

我有什么东西在这里失踪吗?整个转换为.pb是错误的吗?

1 个答案:

答案 0 :(得分:1)

tf.get_default_graph()不返回图表,它会填充范围中的“默认图表”。有关返回值的详细信息,请参阅documentation for tf.import_graph_def

在您的情况下,您可以使用with gfile.FastGFile(model_filename, 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) tf.import_graph_def(graph_def, name='') g = tf.get_default_graph() print(len(g.get_operations())) 检查图表。例如:

{{1}}

有关“默认图表”和范围界定概念的详细信息,请参阅documentation for tf.Graph

希望有所帮助。