将tensorflow模型(.pb)转换为coreml(.mlmodel)

时间:2018-04-03 06:23:27

标签: python tensorflow machine-learning deep-learning coreml

ValueError:在TF图中找不到产生给定输出名称的操作

对ML / Tensorflow以及Python来说都是全新的。

我正在尝试将.pb格式的模型转换为.mlmodel格式,以便在ios项目中使用。 我正在使用tf-coreml。

>>> tf_converter.convert(tf_model_path = '/Users/anup/Downloads/inception_v1_2016_08_28_frozen.pb/inception_v1_2016_08_28_frozen.pb',mlmodel_path = '/Users/anup/Downloads/inception_v1_2016_08_28_frozen.pb/inception_v1_2016_08_28_frozen.mlmodel',output_feature_names = ['Softmax:0'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "tfcoreml/_tf_coreml_converter.py", line 493, in convert
    predicted_probabilities_output=predicted_probabilities_output)
  File "tfcoreml/_tf_coreml_converter.py", line 157, in _convert_pb_to_mlmodel
    OPS, skip_ops = _topological_sort_ops(OPS, output_feature_names) # do (1),(2),(3) listed above
  File "tfcoreml/_tf_graph_transform.py", line 134, in _topological_sort_ops
    skip_ops = _find_skippable_ops(G, ops, output_names)
  File "tfcoreml/_tf_graph_transform.py", line 72, in _find_skippable_ops
    raise ValueError('No op found in the TF graph that produces the given output name(s)')
ValueError: No op found in the TF graph that produces the given output name(s)
>>> 

我在mac终端上运行它。 实际上我不知道什么是Softmax:0意味着我是否需要用其他东西替换它。以下是:https://github.com/tf-coreml/tf-coreml 这可能是一件非常简单的事情而且很愚蠢。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

Softmax:0是张量的名称。您的图表似乎没有具有该名称的张量。

查找图表中最后一个张量名称的一种方法是documentation并使用它来查看.pb文件。