code: def gemm(inputs, prev_modules, attrs, outputs):
      # extract attributes
      alpha = float(attrs.get("alpha", 1.0))
      beta = float(attrs.get("beta", 1.0))
      trans_a = int(attrs.get("transA", 0))
      trans_b = int(attrs.get("transB", 0))
      # extract inputs
      _, tensor_a_shape = inputs[0]
      tensor_b_val, tensor_b_shape = inputs[1]
      tensor_c_val, tensor_c_shape = inputs[2]
      # create module node
      module = Gemm(
          alpha=alpha,
          beta=beta,
          trans_a=trans_a,
          trans_b=trans_b,
          matrix_b=tensor_b_val,
          matrix_c=tensor_c_val,
      )(prev_modules)
      return module, [tensor_c_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 7 for calling a global function with example usage: gemm(inputs, prev_modules, attrs, outputs) and returns: module,  list