class_docstr: Gradient wrt. inputs for `CorrMM`.
  
  Notes
  -----
  You will not want to use this directly, but rely on
  Theano's automatic differentiation or graph optimization to
  use it as needed.
class_docstr_tok: ["Gradient","wrt",".","inputs","for","`","CorrMM","`",".","Notes","--","--","-","You","will","not","want","to","use","this","directly",",","but","rely","on","Theano","'s","automatic","differentiation","or","graph","optimization","to","use","it","as","needed","."]
code: def c_code(self, node, nodename, inp, out_, sub):
      weights, top = inp[:2]
      height, width = inp[2:] or (None, None)
      (bottom,) = out_
      return super(CorrMM_gradInputs, self).c_code_helper(
          bottom, weights, top, sub, height, width
      )
  
imports: from __future__ import absolute_import, print_function, division
  import os
  import logging
  from six import integer_types
  import theano
  from theano import Apply
  from theano import gof
  from theano.gof import ParamsType, EnumList
  from theano.scalar import int64, int8
  from theano.tensor import as_tensor_variable, TensorType
  from theano.tensor.nnet.abstract_conv import get_conv_output_shape
  from theano.tensor import blas_headers
  from theano.tensor.blas import ldflags, blas_header_version
label_desc: Use image node_id 3 for calling the CorrMM_gradInputs obj's underlying member method code with example usage: obj.c_code(node, nodename, inp, out_, sub) and returns: super