code: def gather(inputs, prev_modules, attrs, outputs):
      # extract attributes
      axis = int(attrs.get("axis", 0))
      if axis != 0:
          invalidInputError(False, "Gather layer axis value")
      # extract inputs
      data_tensor_val, data_tensor_shape = inputs[0]
      indices_val, indices = inputs[1]
      # calc output tensor shape
      out_tensor_shape = tuple(
          data_tensor_shape[:axis]
          + indices
          + data_tensor_shape[axis + 1 :]
      )
      # create module node
      module = Gather()(prev_modules)
      return module, [out_tensor_shape]
  
file_path: BigDL/python/dllib/src/bigdl/dllib/contrib/onnx/ops_converter.py
imports: from bigdl.dllib.nn.layer import SpatialAveragePooling, SpatialBatchNormalization
  from bigdl.dllib.nn.layer import SpatialConvolution, SpatialMaxPooling, JoinTable
  from bigdl.dllib.nn.layer import ReLU, SoftMax, CAddTable, Unsqueeze
  from bigdl.dllib.nn.onnx.layer import Constant, Gather, Gemm, Shape, Reshape
  from .converter_utils import *
label_desc: Use image node_id 6 for calling a global function with example usage: gather(inputs, prev_modules, attrs, outputs) and returns: module,  list