Python 将tensorflow模型(.pb)转换为coreml(.mlmodel) ValueError:在生成给定输出名称的TF图中找不到op
我对ML/Tensorflow和Python都是新手 我正在尝试将模型从.pb格式转换为.mlmodel格式,以便在ios项目中使用。 我正在使用tfcoremlPython 将tensorflow模型(.pb)转换为coreml(.mlmodel) ValueError:在生成给定输出名称的TF图中找不到op,python,tensorflow,machine-learning,deep-learning,coreml,Python,Tensorflow,Machine Learning,Deep Learning,Coreml,我对ML/Tensorflow和Python都是新手 我正在尝试将模型从.pb格式转换为.mlmodel格式,以便在ios项目中使用。 我正在使用tfcoreml >>> 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/anu
>>> 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)
>>>
>>tf_converter.convert(tf_model_path='/Users/anup/Downloads/inception_v1_2016_08_28_freezed.pb/inception_v1_2016_08_28_freezed.pb',mlmodel_path='/Users/anup/Downloads/inception/inception_v1_v1_2016_08_28_freezed.pb/inception_v1_2016_2016_08_freezed.mlmodel',输出功能名称['Softmax:0']
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
convert中第493行的文件“tfcoreml/_tf_coreml_converter.py”
预测概率输出=预测概率输出)
文件“tfcoreml/_tf_coreml_converter.py”,第157行,在_convert_pb_to_mlmodel中
OPS,skip_OPS=_拓扑_排序_OPS(OPS,output_feature_name)#上面列出的do(1)、(2)、(3)
文件“tfcoreml/_tf_graph_transform.py”,第134行,在拓扑排序操作中
跳过操作=\u查找\u可跳过的操作(G、操作、输出\u名称)
文件“tfcoreml/_tf_graph_transform.py”,第72行,在查找可跳过的操作中
raise VALUERROR('在生成给定输出名称的TF图中未找到op)'
ValueError:在生成给定输出名称的TF图中找不到op
>>>
我在mac终端上运行这个。
实际上,我不知道Softmax:0是什么意思,也不知道是否需要用其他东西替换它。下面是:
这可能是一件非常简单的事情,我很愚蠢。请帮我解决这个问题。Softmax:0是张量的名称。您的图形似乎没有具有该名称的张量
找到图形中最后一个张量的名称的一种方法是查看
.pb
文件。我按照以下方式转换了文件:但当我导入到ios项目时,它不接受图像。我认为最后一个张量图:559:op name=import/final_result,op type=(Softmax),输入=import/final_training_ops/Wx_plus_b/add:0,输出=import/final_result:0@input shapes:name=import/final_training_ops/Wx_plus_b/add:0:(?,5)@output shapes:name=import/final_result:0:(?,5)