code: def check_backward(self, h_data, x_data, y_grad):
      h = chainer.Variable(h_data)
      x = chainer.Variable(x_data)
      y = self._forward(self.link, h, x)
      y.grad = y_grad
      y.backward()
  
      def f():
          return (_gru(self.link, h_data, x_data),)
  
      (gx,) = gradient_check.numerical_grad(f, (x.data,), (y_grad,))
      testing.assert_allclose(gx, x.grad, atol=1e-3)
  
      if isinstance(self.link, links.StatelessGRU):
          (gh,) = gradient_check.numerical_grad(f, (h.data,), (y_grad,))
          testing.assert_allclose(gh, h.grad, atol=1e-3)
  
imports: import unittest
  import numpy
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import gradient_check
  from chainer import links
  from chainer import testing
  from chainer.testing import attr
label_desc: Use image node_id 6 for calling the TestGRU obj's underlying member method code with example usage: obj.check_backward(h_data, x_data, y_grad) and returns: _gru