code: def _gru(func, h, x):
      xp = backend.get_array_module(h, x)
  
      r = _sigmoid(x.dot(func.W_r.W.data.T) + h.dot(func.U_r.W.data.T))
      z = _sigmoid(x.dot(func.W_z.W.data.T) + h.dot(func.U_z.W.data.T))
      h_bar = xp.tanh(
          x.dot(func.W.W.data.T) + (r * h).dot(func.U.W.data.T)
      )
      y = (1 - z) * h + z * h_bar
      return y
  
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 2 for calling a global function with example usage: _gru(func, h, x) and returns: y