将Tensorflow模型转换为CoreML模型。OP Sli缺少形状转换器

2024-09-30 03:25:48 发布

您现在位置:Python中文网/ 问答频道 /正文

Im在python中使用TFCoreml将我的Tensorflow模型转换为CoreML,以便在使用CoreML库的iOS设备上进行开发。在

我使用下面的python代码尝试将模型转换为CoreML。在

导入tfcoreml作为tf_转换器

tf_converter.convert(tf_model_path = 'frozen_inference_graph.pb', 
                     mlmodel_path = 'ml_model.mlmodel', 
                     output_feature_names = ['SemanticPredictions:0'],
                      input_name_shape_dict =  {'ImageTensor:0' : [1, 512, 512, 3]})

这将产生以下错误:

Shape Translator missing for OP of type Slice.

我进一步阅读了TFCoreml的文档,它指出Slice不完全受支持,并且需要一些自定义的转换代码才能工作。在TFCoreml文档中,它建议将冻结的图分解为子图,并分别对它们进行转换,然后在转换后将它们合并在一起。在

我更新了代码以使用自定义层,但我不真正理解自定义转换函数是如何工作的。在

只需要一些关于从哪里开始了解如何编写这些自定义转换方法的指南,这样我就可以解决将Tensorflow模型转换为CoreML的问题。在

[编辑]

我对TFCoreml示例和文档做了更多的阅读,并对我的解决方案进行了调整。在

^{pr2}$

我还是犯了和以前一样的错误

Shape Translator missing for OP of type Slice.

但我注意到我也收到了这个错误/警告

custom_conversion_functions={'Slice': _convert_slice}) # dictionary has op name as the key

如有任何帮助,将不胜感激


Tags: path代码name文档模型convertmodeltf

热门问题