模型未导入到core ml中

2024-05-26 11:07:33 发布

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

我无法将跟踪模型保存到coreml文件。我的代码:

input_shape = ct.Shape(shape=[1, 3, 256, 256])
converted = ct.convert(
    traced_model,
    inputs=[ct.TensorType(name='input', shape=input_shape)])

我得到以下错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-55-6daf89c84466> in <module>()
      2 converted = ct.convert(
      3     traced_model,
----> 4     inputs=[ct.TensorType(name='input', shape=input_shape)])

C:\anaconda3\lib\site-packages\coremltools\converters\_converters_entry.py in convert(model, source, inputs, outputs, classifier_config, minimum_deployment_target, convert_to, **kwargs)
    181         outputs=outputs,
    182         classifier_config=classifier_config,
--> 183         **kwargs
    184     )
    185 

C:\anaconda3\lib\site-packages\coremltools\converters\mil\converter.py in mil_convert(model, convert_from, convert_to, **kwargs)
    127     """
    128     proto = mil_convert_to_proto(model, convert_from, convert_to,
--> 129         ConverterRegistry, **kwargs)
    130     if convert_to == 'mil':
    131         return proto

C:\anaconda3\lib\site-packages\coremltools\converters\mil\converter.py in mil_convert_to_proto(model, convert_from, convert_to, converter_registry, **kwargs)
    169     frontend_converter = frontend_converter_type()
    170 
--> 171     prog = frontend_converter(model, **kwargs)
    172     common_pass(prog)
    173 

C:\anaconda3\lib\site-packages\coremltools\converters\mil\converter.py in __call__(self, *args, **kwargs)
     83         from .frontend.torch import load
     84 
---> 85         return load(*args, **kwargs)
     86 
     87 

C:\anaconda3\lib\site-packages\coremltools\converters\mil\frontend\torch\load.py in load(model_spec, debug, **kwargs)
     83         raise e
     84     except Exception as e:
---> 85         raise e
     86 
     87     return prog

C:\anaconda3\lib\site-packages\coremltools\converters\mil\frontend\torch\load.py in load(model_spec, debug, **kwargs)
     73 
     74     try:
---> 75         prog = converter.convert()
     76     except RuntimeError as e:
     77         if debug and "convert function" in str(e):

C:\anaconda3\lib\site-packages\coremltools\converters\mil\frontend\torch\converter.py in convert(self)
    222 
    223             # Add the rest of the operations
--> 224             convert_nodes(self.context, self.graph)
    225 
    226             graph_outputs = [self.context[name] for name in self.graph.outputs]

C:\anaconda3\lib\site-packages\coremltools\converters\mil\frontend\torch\ops.py in convert_nodes(context, graph)
     54             )
     55         else:
---> 56             _add_op(context, node)
     57 
     58         # We've generated all the outputs the graph needs, terminate conversion.

C:\anaconda3\lib\site-packages\coremltools\converters\mil\frontend\torch\ops.py in to(context, node)
   1890         res = mb.const(mode="immediate_value", val=casted_input, name=node.name)
   1891     else:
-> 1892         res = mb.cast(x=_input, dtype=NUM_TO_DTYPE_STRING[dtype], name=node.name)
   1893     context.add(res)
   1894 

KeyError: 5

我的模特(头):

Net(
  original_name=Net
  (Encoder): Sequential(
    original_name=Sequential
    (0): Conv2d(original_name=Conv2d)
    (1): BatchNorm2d(original_name=BatchNorm2d)
    (2): ReLU(original_name=ReLU)
    (3): MaxPool2d(original_name=MaxPool2d)
    (4): LambdaReduce(
      original_name=LambdaReduce
      (0): Lambda(original_name=Lambda)
      (1): Sequential(
        original_name=Sequential
        (0): BatchNorm2d(original_name=BatchNorm2d)
        (1): ReLU(original_name=ReLU)
        (2): Conv2d(original_name=Conv2d)
        (3): BatchNorm2d(original_name=BatchNorm2d)
        (4): ReLU(original_name=ReLU)
        (5): Conv2d(original_name=Conv2d)
      ) ....

pytorch 1.4 coremltools 4 我要警告你:

警告:根:在图形输出中检测到元组。这将在转换的模型中展平。 转换前端==>;军事行动:0%| 5/5269[00:00<;00:031645.73军事行动/秒]

如何解决这个问题


Tags: nameinpyconvertmodellibpackagessite