code: def test_gradweight(self):
      self.run_gradweight(
          inputs_shape=(16, 10, 12, 1),
          filters_shape=(10, 6, 12, 1),
          dCdH_shape=(16, 5, 1, 10),
          subsample=(1, 1),
      )
      self.run_gradweight(
          inputs_shape=(16, 20, 10, 1),
          filters_shape=(10, 6, 4, 1),
          dCdH_shape=(16, 8, 4, 10),
          subsample=(2, 2),
      )
      self.run_gradweight(
          inputs_shape=(16, 20, 10, 1),
          filters_shape=(10, 6, 3, 1),
          dCdH_shape=(16, 5, 3, 10),
          subsample=(3, 3),
      )
      self.run_gradweight(
          inputs_shape=(16, 20, 12, 1),
          filters_shape=(10, 6, 12, 1),
          dCdH_shape=(16, 8, 1, 10),
          subsample=(2, 1),
      )
  
imports: from __future__ import absolute_import, print_function, division
  import unittest
  import numpy
  import theano
  from theano import config
  from theano.tests import unittest_tools
  from theano.tensor.nnet.corr import CorrMM, CorrMM_gradWeights, CorrMM_gradInputs
  from ..type import gpuarray_shared_constructor
  from ..blas import GpuCorrMM, GpuCorrMM_gradWeights, GpuCorrMM_gradInputs
  from .config import mode_with_gpu, mode_without_gpu, ref_cast
  from theano.tensor.nnet.tests.test_abstract_conv import Grouped_conv_noOptim, TestUnsharedConv
  from theano.tensor.nnet.tests.test_abstract_conv import TestAsymmetricPadding, TestCausalConv
label_desc: Use image node_id 8 for calling the TestCorrMM obj's underlying member method code with example usage: obj.test_gradweight() without return types