class_docstr: Gradient wrt. filters 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",".","filters","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 make_node(self, img, topgrad, shape=None):
      img = as_tensor_variable(img)
      topgrad = as_tensor_variable(topgrad)
      img, topgrad = self.as_common_dtype(img, topgrad)
      if img.type.ndim != 4:
          raise TypeError("img must be 4D tensor")
      if topgrad.type.ndim != 4:
          raise TypeError("topgrad must be 4D tensor")
      if shape is None:
          if self.subsample != (1, 1) or self.border_mode == "half":
              raise ValueError(
                  "shape must be given if subsample != (1, 1)"
                  ' or border_mode == "half"'
              )
          height_width = []
      else:
          height_width = [
              as_tensor_variable(shape[0]).astype("int64"),
              as_tensor_variable(shape[1]).astype("int64"),
          ]
  
      if self.unshared is True:
          broadcastable = [
              topgrad.type.broadcastable[1],
              False,
              False,
              img.type.broadcastable[1],
              False,
              False,
          ]
      else:
          broadcastable = [
              topgrad.type.broadcastable[1],
              img.type.broadcastable[1],
              False,
              False,
          ]
      dtype = img.type.dtype
      return Apply(
          self,
          [img, topgrad] + height_width,
          [TensorType(dtype, broadcastable)()],
      )
  
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 1 for calling the CorrMM_gradWeights obj's underlying member method code with example usage: obj.make_node(img, topgrad, shape) and returns: Apply