将 Tensorflow 模型转换为 CoreML 模型时出错

问题描述 投票:0回答:1
NotImplementedError                       Traceback (most recent call last)
Cell In[19], line 1
----> 1 mlmodel = ct.convert(model, convert_to="mlmodel", source="tensorflow")

File ~/anaconda3/lib/python3.11/site-packages/coremltools/converters/_converters_entry.py:551, in convert(model, source, inputs, outputs, classifier_config, minimum_deployment_target, convert_to, compute_precision, skip_model_load, compute_units, package_dir, debug, pass_pipeline)
    539 exact_target = _determine_target(convert_to, minimum_deployment_target)
    540 _validate_conversion_arguments(
    541     model,
    542     exact_source,
   (...)
    549     minimum_deployment_target,
    550 )
--> 551 need_fp16_cast_pass = _need_fp16_cast_pass(compute_precision, exact_target)
    553 if pass_pipeline is None:
    554     pass_pipeline = PassPipeline()

File ~/anaconda3/lib/python3.11/site-packages/coremltools/converters/_converters_entry.py:624, in _need_fp16_cast_pass(compute_precision, convert_to)
    620 def _need_fp16_cast_pass(
    621     compute_precision: Optional[Union[precision, FP16ComputePrecision]], convert_to: Text
    622 ) -> bool:
    623     if convert_to not in ("mlprogram", "neuralnetwork", "milinternal", "milpython"):
--> 624         raise NotImplementedError(f"Backend converter {convert_to} not implemented")
    626     if compute_precision is None:
    627         return convert_to != "neuralnetwork"

NotImplementedError: Backend converter mlmodel not implemented

不知道这个错误意味着什么。我正在尝试将我使用 Tensorflow 构建的 CNN 模型转换为 coreml 模型,但我不断收到上述错误。

mlmodel = ct.convert(model, convert_to="mlmodel", source="tensorflow")

这是从保存的 .h5 文件导入模型后完成的。

python tensorflow keras coreml ml
1个回答
0
投票

由于错误表示作为 covert_to 参数,您应该使用以下“mlprogram”、“neuralnetwork”、“milinternal”、“milpython”之一。您需要阅读每种格式并选择一种适合您的情况。

以下是手册的参考:

mlprogram
- 是 Core ML 程序格式。从此返回的对象保存的模型可在 iOS15、macOS12、watchOS8 和 tvOS15 上执行。

neuralnetwork
- 是原始的 Core ML 格式。从此返回的对象保存的模型可以在 iOS13/macOS10.15/watchOS6/tvOS13 及更高版本上执行,也可以在 iOS14/macOS11/watchOS7/tvOS14 及更高版本上执行,具体取决于模型中使用的层。

milinternal
- 返回 MIL 程序对象。 MIL 程序主要用于调试和检查。

© www.soinside.com 2019 - 2024. All rights reserved.