From b01316b9fbd5bbedc161928ca31d6c83d371ad23 Mon Sep 17 00:00:00 2001 From: Luke Reichold Date: Tue, 24 Mar 2020 16:46:42 -0500 Subject: [PATCH] Conv conversion: infer rank from weights if possible --- onnx_coreml/_operators_nd.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/onnx_coreml/_operators_nd.py b/onnx_coreml/_operators_nd.py index 5307d4b..12520ca 100644 --- a/onnx_coreml/_operators_nd.py +++ b/onnx_coreml/_operators_nd.py @@ -40,7 +40,12 @@ def load_input_constants(builder, node, graph, err): def _add_conv_like_op(add_func, get_params_func, params_dict, builder, node, graph, err): + # To do: Need to avoid dependence on rank for conversion since rank is not always available. rank = builder._get_rank(node.inputs[0]) + + if rank < 0 and node.op_type == "Conv" and "w_shape" in params_dict: + rank = len(params_dict["w_shape"]) + if rank == 4: get_params_func(builder, node, graph, err, params_dict) add_func(node.inputs, node.outputs, params_dict=params_dict, builder=builder, node=node, graph=graph, err=err)