我有一些Keras经验并且正在学习TensorFlowSharp(https://github.com/migueldeicaza/TensorFlowSharp)。使用ExampleInceptionInference项目,我想使用我在Keras python代码中训练的模型。
(我在这里使用@jdehesa回复创建了一个.pb文件:How to export Keras .h5 to tensorflow .pb?)
当我在TensorFlowSharp中加载.pb模型文件时,此行失败:
runner.AddInput (graph ["input"] [0], tensor).Fetch (graph ["output"] [0]);
图表["input"]
和图表["output"]
似乎都是空的。
我是否需要在模型中命名图层?
我使用的Keras模型是VGG16的经过修改和重新训练的版本。
是否可以在TensorFlowSharp中输出命名图层列表?或者是否可以通过其他方式引用它们? (按号码?)
答案 0 :(得分:3)
TFGraph的GetEnumerator()方法允许您枚举所有操作。
List<TFOperation> op_list = new List<TFOperation>( graph.GetEnumerator() );
您可以检查TFOperation名称和OpType来查看图中的内容。
答案 1 :(得分:2)
我在TensorFlowSharp中遇到了同样的问题。查找输入和输出名称的最简单方法是将模型加载到Netron(https://github.com/lutzroeder/netron)中,该工具可以直观地显示模型。您可以单击第一个节点以查看输入的“ id:”和最后一个节点的“ name”属性。
答案 2 :(得分:0)