code: def rnn_impl_cudnn_rnn(x, seq_length, previous_state, _):
      assert (
          previous_state is None
      )  # 'Passing previous state not supported with CuDNN backend'
  
      # Hack: CudnnLSTM works similarly to Keras layers in that when you instantiate
      # the object it creates the variables, and then you just call it several times
      # to enable variable re-use. Because all of our code is structure in an old
      # school TensorFlow structure where you can just call tf.get_variable again with
      # reuse=True to reuse variables, we can't easily make use of the object oriented
      # way CudnnLSTM is implemented, so we save a singleton instance in the function,
      # emulating a static function variable.
      if not rnn_impl_cudnn_rnn.cell:
          # Forward direction cell:
          fw_cell = tf.contrib.cudnn_rnn.CudnnLSTM(
              num_layers=1,
              num_units=Config.n_cell_dim,
              input_mode="linear_input",
              direction="unidirectional",
              dtype=tf.float32,
          )
          rnn_impl_cudnn_rnn.cell = fw_cell
  
      output, output_state = rnn_impl_cudnn_rnn.cell(
          inputs=x, sequence_lengths=seq_length
      )
  
      return output, output_state
  
imports: from __future__ import absolute_import, division, print_function
  import os
  import sys
  import absl.app
  import numpy
  import progressbar
  import shutil
  import tensorflow
  import tensorflow.compat.v1
  import time
  from datetime import datetime
  from ds_ctcdecoder import ctc_beam_search_decoder, Scorer
  from .evaluate import evaluate
  from six.moves import zip, range
  from .util.config import Config, initialize_globals
  from .util.checkpoints import load_or_init_graph_for_training, load_graph_for_evaluation, reload_best_checkpoint
  from .util.evaluate_tools import save_samples_json
  from .util.feeding import create_dataset, audio_to_features, audiofile_to_features
  from .util.flags import create_flags, FLAGS
  from .util.helpers import check_ctcdecoder_version, ExceptionBox
  from .util.logging import create_progressbar, log_debug, log_error, log_info, log_progress, log_warn
  from .util.io import open_remote, remove_remote, listdir_remote, is_remote_path, isdir_remote
label_desc: Use image node_id 5 for calling a global function with example usage: rnn_impl_cudnn_rnn(x, seq_length, previous_state, _) and returns: output,  output_state