code: def local_abstractconv_gradinputs_gemm(node):
      # If theano.config.blas.ldflags is empty, Theano will use
      # a NumPy C implementation of [sd]gemm_.
      if theano.config.cxx == "" or node.inputs[0].dtype == "float16":
          return
      if not isinstance(node.op, AbstractConv2d_gradInputs):
          return None
      kern, topgrad, shape = node.inputs
      if not isinstance(kern.type, TensorType) or not isinstance(
          topgrad.type, TensorType
      ):
          return None
  
      # need to flip the kernel if necessary
      if node.op.filter_flip:
          flip = (slice(None),) * (kern.ndim - 2) + (
              slice(None, None, -1),
          ) * 2
          kern = kern[flip]
      rval = CorrMM_gradInputs(
          border_mode=node.op.border_mode,
          subsample=node.op.subsample,
          filter_dilation=node.op.filter_dilation,
          num_groups=node.op.num_groups,
          unshared=node.op.unshared,
      )(kern, topgrad, shape)
      copy_stack_trace(node.outputs[0], rval)
  
      return [rval]
  
imports: from __future__ import absolute_import, print_function, division
  import theano
  from theano import compile, gof
  from theano.compile import optdb
  from theano.gof import local_optimizer
  from theano.gof.opt import copy_stack_trace
  from theano.tensor.nnet.corr import CorrMM, CorrMM_gradInputs, CorrMM_gradWeights
  from theano.tensor.nnet.corr3d import Corr3dMM, Corr3dMM_gradInputs, Corr3dMM_gradWeights
  from theano.tensor.nnet.blocksparse import SparseBlockGemv, SparseBlockOuter, sparse_block_gemv_inplace, sparse_block_outer_inplace
  from theano.tensor.nnet.abstract_conv import AbstractConv2d, AbstractConv2d_gradWeights, AbstractConv2d_gradInputs
  from theano.tensor.nnet.abstract_conv import AbstractConv3d, AbstractConv3d_gradWeights, AbstractConv3d_gradInputs
  from theano.tensor.nnet.abstract_conv import get_conv_output_shape
  from theano.tensor.opt import register_specialize_device
  from theano.tensor import TensorType
  from theano.tensor import opt
  from theano.tensor.nnet.conv import conv2d, ConvOp
label_desc: Use image node_id 7 for calling a global function with example usage: local_abstractconv_gradinputs_gemm(node) and returns: list, None, None