code: def _gru(x, h, w, b, with_bias):
      """GRU cell.
      Args:
          x (:obj:`~nnabla.Variable`): Input data.
          h (:obj:`~nnabla.Variable`): Hidden state.
          w (:obj:`~nnabla.Variable`): Weight.
          b (:obj:`~nnabla.Variable`): Bias.
          with_bias (bool): Include the bias or not.
      """
      hidden_size = h.shape[1]
      xh = F.concatenate(*(x, h), axis=1)
      w0, w1, w2 = F.split(w, axis=0)
      b0 = b1 = b2 = b3 = None
      if with_bias:
          b0, b1, b2, b3 = F.split(b, axis=0)
      r_t = F.sigmoid(F.affine(xh, F.transpose(w0, (1, 0)), b0))
      z_t = F.sigmoid(F.affine(xh, F.transpose(w1, (1, 0)), b1))
  
      w2_0 = w2[:, : w2.shape[1] - hidden_size]
      w2_1 = w2[:, w2.shape[1] - hidden_size :]
      n_t = F.tanh(
          F.affine(x, F.transpose(w2_0, (1, 0)), b2)
          + r_t * F.affine(h, F.transpose(w2_1, (1, 0)), b3)
      )
      h_t = (1 - z_t) * n_t + z_t * h
  
      return h_t
  
file_path: nnabla/python/src/nnabla/utils/rnn.py
imports: import nnabla
  import nnabla.functions
  import numpy
label_desc: Use image node_id 7 for calling a global function with example usage: _gru(x, h, w, b, with_bias) and returns: h_t