code: def convert_reshape(node, **kwargs):
      
      name, input_nodes, attrs = get_inputs(node, kwargs)
  
      output_shape_list = convert_string_to_list(attrs["shape"])
  
      initializer = kwargs["initializer"]
      output_shape_np = np.array(output_shape_list, dtype='int64')
      data_type = onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[output_shape_np.dtype]
      dims = np.shape(output_shape_np)
  
      output_shape_name = "reshape_attr_tensor" + str(kwargs["idx"])
      tensor_node = onnx.helper.make_tensor_value_info(output_shape_name, data_type, dims)
  
      initializer.append(
          onnx.helper.make_tensor(
              name=output_shape_name,
              data_type=data_type,
              dims=dims,
              vals=output_shape_list,
              raw=False,
          )
      )
  
      input_nodes.append(output_shape_name)
  
      not_supported_shape = [-2, -3, -4]
  
      for val in output_shape_list:
          if val in not_supported_shape:
              raise AttributeError("Reshape: Shape value not supported in ONNX", val)
  
      reshape_node = onnx.helper.make_node(
          "Reshape",
          input_nodes,
          [name],
          name=name
      )
  
      return [tensor_node, reshape_node]
docs: Map MXNet's Reshape operator attributes to onnx's Reshape operator.
      Converts output shape attribute to output shape tensor
      and return multiple created nodes.