code: def gru(
      inputs,
      initial_state,
      mask,
      kernel,
      recurrent_kernel,
      bias,
      activation,
      recurrent_activation,
      return_sequences=False,
      go_backwards=False,
      unroll=False,
      time_major=False,
      reset_after=True,
  ):
      cudnn_supported = cudnn_ok(
          activation,
          recurrent_activation,
          unroll,
          use_bias=bias is not None,
          reset_after=reset_after,
      )
      if not cudnn_supported or mask is not None:
          raise NotImplementedError
  
      from keras.backend.tensorflow import Variable
  
      if isinstance(kernel, Variable):
          kernel = kernel.value
      if isinstance(recurrent_kernel, Variable):
          recurrent_kernel = recurrent_kernel.value
      if isinstance(bias, Variable):
          bias = bias.value
  
      try:
          return _cudnn_gru(
              inputs,
              initial_state,
              kernel,
              recurrent_kernel,
              bias,
              mask,
              time_major,
              go_backwards,
              return_sequences,
          )
      except tf.errors.InvalidArgumentError:
          # cuDNN op not found.
          raise NotImplementedError
      except tf.errors.NotFoundError:
          # alternative error: device not found for op
          raise NotImplementedError
  
file_path: keras/keras/backend/tensorflow/rnn.py
imports: import tensorflow
  import tree
  from keras.utils.nest import pack_sequence_as
label_desc: Use image node_id 2 for calling a global function with example usage: gru(inputs, initial_state, mask, kernel, recurrent_kernel, bias, activation, recurrent_activation, return_sequences, go_backwards, unroll, time_major, reset_after) and returns: _cudnn_gru