我无法将跟踪模型保存到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军事行动/秒]
如何解决这个问题
目前没有回答
相关问题 更多 >
编程相关推荐