code: def call(self, inputs, state):
      input_dim = inputs.get_shape()[-1]
      assert input_dim is not None, "input dimension must be defined"
      W = tf.get_variable(
          name="W",
          shape=[input_dim, 3 * self._num_units],
          dtype=tf.float32,
      )
      U = tf.get_variable(
          name="U",
          shape=[self._num_units, 3 * self._num_units],
          dtype=tf.float32,
      )
      b = tf.get_variable(
          name="b", shape=[1, 3 * self._num_units], dtype=tf.float32
      )
  
      xw = tf.split(tf.matmul(inputs, W) + b, 3, 1)
      hu = tf.split(tf.matmul(state, U), 3, 1)
      r = tf.sigmoid(xw[0] + hu[0])
      z = tf.sigmoid(xw[1] + hu[1])
      h1 = self._activation(xw[2] + r * hu[2])
      next_h = h1 * (1 - z) + state * z
      return next_h, next_h
  
file_path: nni/examples/trials/weight_sharing/ga_squad/rnn.py
imports: import tensorflow
  from tensorflow.python.ops.rnn_cell_impl import RNNCell
label_desc: Use image node_id 4 for calling the XGRUCell obj's underlying member method code with example usage: obj.call(inputs, state) and returns: next_h,  next_h