code: def build(self, x, h, mask=None):
          '''
          Build the GRU cell.
          '''
          xw = tf.split(tf.matmul(x, self.w_matrix) + self.bias, 3, 1)
          hu = tf.split(tf.matmul(h, self.U), 3, 1)
          r = tf.sigmoid(xw[0] + hu[0])
          z = tf.sigmoid(xw[1] + hu[1])
          h1 = tf.tanh(xw[2] + r * hu[2])
          next_h = h1 * (1 - z) + h * z
          if mask is not None:
              next_h = next_h * mask + h * (1 - mask)
          return next_f build(self, x, h, mask=None):
          '''
          Build the GRU cell.
          '''
          xw = tf.split(tf.matmul(x, self.w_matrix) + self.bias, 3, 1)
          hu = tf.split(tf.matmul(h, self.U), 3, 1)
          r = tf.sigmoid(xw[0] + hu[0])
          z = tf.sigmoid(xw[1] + hu[1])
          h1 = tf.tanh(xw[2] + r * hu[2])
          next_h = h1 * (1 - z) + h * z
          if mask is not None:
              next_h = next_h * mask + h * (1 - mask)
          return next_h
docs: Build the GRU cell.