code: def test_subsample(self):
      # Tests convolution where subsampling != (1,1)
      self.validate(
          (3, 2, 7, 5), (5, 2, 2, 3), "full", subsample=(2, 2)
      )
  
      # Fails as of 2012-07-11
      self.assertRaises(
          NotImplementedError,
          self.validate,
          (1, 1, 6, 6),
          (1, 1, 3, 3),
          "full",
          subsample=(3, 3),
      )
  
      # Fails as of 2017-08-10
      self.assertRaises(
          NotImplementedError,
          self.validate,
          (3, 2, 7, 5),
          (5, 2, 2, 3),
          "valid",
          subsample=(2, 2),
      )
      self.assertRaises(
          NotImplementedError,
          self.validate,
          (3, 2, 7, 5),
          (5, 2, 2, 3),
          "valid",
          subsample=(2, 1),
      )
      self.assertRaises(
          NotImplementedError,
          self.validate,
          (1, 1, 6, 6),
          (1, 1, 3, 3),
          "valid",
          subsample=(3, 3),
      )
  
imports: from __future__ import absolute_import, print_function, division
  import time
  from nose.plugins.skip import SkipTest
  import numpy
  import theano
  import theano.tensor
  from theano.tests import unittest_tools
  from theano.tensor.nnet import conv
  from theano.tensor.basic import _allclose, NotScalarConstantError
  from theano.tests.unittest_tools import attr
label_desc: Use image node_id 16 for calling the TestConv2D obj's underlying member method code with example usage: obj.test_subsample() without return types