Roshrini commented on a change in pull request #12399: ONNX export: Add Crop,
Deconvolution and fix the default stride of Pooling to 1
URL: https://github.com/apache/incubator-mxnet/pull/12399#discussion_r214106324
##########
File path: python/mxnet/contrib/onnx/mx2onnx/_op_translations.py
##########
@@ -207,6 +207,89 @@ def convert_convolution(node, **kwargs):
return [conv_node]
+@mx_op.register("Deconvolution")
+def convert_deconvolution(node, **kwargs):
+ """Map MXNet's deconvolution operator attributes to onnx's ConvTranspose
operator
+ and return the created node.
+ """
+ helper, _, _ = import_onnx_modules()
+ name = node["name"]
+ inputs = node["inputs"]
+
+ num_inputs = len(inputs)
+
+ proc_nodes = kwargs["proc_nodes"]
+ input_node = proc_nodes[kwargs["index_lookup"][inputs[0][0]]].name
+ weights_node = proc_nodes[kwargs["index_lookup"][inputs[1][0]]].name
+
+ if num_inputs > 2:
+ bias_node = proc_nodes[kwargs["index_lookup"][inputs[2][0]]].name
+
+ attrs = node.get("attrs")
+
+ kernel_dims = list(parse_helper(attrs, "kernel"))
+ stride_dims = list(parse_helper(attrs, "stride", [1, 1]))
+ pad_dims = list(parse_helper(attrs, "pad", [0, 0]))
+ num_group = int(attrs.get("num_group", 1))
+ dilations = list(parse_helper(attrs, "dilate", [1, 1]))
+ adj_dims = list(parse_helper(attrs, "adj"))
+
+ pad_dims = pad_dims + pad_dims
+
+ input_nodes = [input_node, weights_node]
+ if num_inputs > 2:
+ input_nodes.append(bias_node)
+
+ deconv_node = helper.make_node(
+ "ConvTranspose",
+ inputs=input_nodes,
+ outputs=[name],
+ kernel_shape=kernel_dims,
+ strides=stride_dims,
+ dilations=dilations,
+ output_padding=adj_dims,
+ pads=pad_dims,
+ group=num_group,
+ name=name
+ )
+
+ return [deconv_node]
+
+
+@mx_op.register("Crop")
+def convert_crop(node, **kwargs):
Review comment:
Crop is an experimental operator in ONNX, its definition can be changed.
Suggest: add warning for users to be cautious while using this op?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services