我一直在研究在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是错误的吗?
答案 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
。
希望有所帮助。