code: def roc_auc(logits, labels, weights_fn=None):
      """Calculate ROC AUC.
  
      Requires binary classes.
  
      Args:
        logits: Tensor of size [batch_size, 1, 1, num_classes]
        labels: Tensor of size [batch_size, 1, 1, num_classes]
        weights_fn: Function that takes in labels and weighs examples (unused)
      Returns:
        ROC AUC (scalar), weights
      """
      del weights_fn
      with tf.variable_scope("roc_auc", values=[logits, labels]):
          predictions = tf.argmax(logits, axis=-1)
          _, auc = tf.metrics.auc(labels, predictions, curve="ROC")
          return auc, tf.constant(1.0)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import six
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import modalities
  from tensor2tensor.utils import bleu_hook
  from tensor2tensor.utils import contrib
  from tensor2tensor.utils import rouge
  from tensor2tensor.utils import sari_hook
  import tensorflow.compat.v1
  from tensorflow.python.util import tf_inspect
label_desc: Use image node_id 31 for calling a global function with example usage: roc_auc(logits, labels, weights_fn) and returns: auc,  tf