Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[Feature Request] Support ONNX export of Deconvolution operator #13570

Closed
Lebron8997 opened this issue Dec 7, 2018 · 3 comments
Closed

[Feature Request] Support ONNX export of Deconvolution operator #13570

Lebron8997 opened this issue Dec 7, 2018 · 3 comments
Labels

Comments

@Lebron8997
Copy link

Currently, MXNet->ONNX model export does not support the MXNet operator:

  • Deconvolution

The following code (adapted from https://github.com/NVIDIA/mxnet_to_onnx/blob/master/mx2onnx_converter/mx2onnx_converter_functions.py) may be inserted in [mxnet-ROOT]/python/mxnet/contrib/onnx/mx2onnx/_op_translations.py

@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.
"""
onnx = 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]))

pad_dims = pad_dims + pad_dims

input_nodes = [input_node, weights_node]
if num_inputs > 2:
    input_nodes.append(bias_node)

deconv_node = onnx.helper.make_node(
    "ConvTranspose",
    inputs=input_nodes,
    outputs=[name],
    kernel_shape=kernel_dims,
    strides=stride_dims,
    pads=pad_dims,
    group=num_group,
    name=name
)

return [deconv_node]
@lanking520
Copy link
Member

@Lebron8997 Thanks for your issue reporting. @Roshrini here to help you out.

@Roshrini
Copy link
Member

Roshrini commented Dec 7, 2018

@Lebron8997 This feature is already in PR #12399

@Roshrini
Copy link
Member

Roshrini commented Dec 7, 2018

@lanking520 Duplicate issue: #12807
Feel free to close one.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants