code: def crf_decode_backward(
      inputs: TensorLike, state: TensorLike
  ) -> tf.Tensor:
      """Computes backward decoding in a linear-chain CRF.
  
      Args:
        inputs: A [batch_size, num_tags] matrix of
              backpointer of next step (in time order).
        state: A [batch_size, 1] matrix of tag index of next step.
  
      Returns:
        new_tags: A [batch_size, num_tags]
          tensor containing the new tag indices.
      """
      inputs = tf.transpose(inputs, [1, 0, 2])
  
      def _scan_fn(state, inputs):
          state = tf.squeeze(state, axis=[1])
          idxs = tf.stack(
              [tf.range(tf.shape(inputs)[0]), state], axis=1
          )
          new_tags = tf.expand_dims(tf.gather_nd(inputs, idxs), axis=-1)
          return new_tags
  
      return tf.transpose(tf.scan(_scan_fn, inputs, state), [1, 0, 2])
  
imports: import warnings
  import numpy
  import tensorflow
  from tensorflow_addons.rnn.abstract_rnn_cell import AbstractRNNCell
  from tensorflow_addons.utils.types import TensorLike
  from typeguard import typechecked
  from typing import Optional, Tuple
label_desc: Use image node_id 11 for calling a global function with example usage: crf_decode_backward(inputs, state) and returns: tf, new_tags