class_docstr: This class evaluates a model against multiple attacks.
class_docstr_tok: ["This","class","evaluates","a","model","against","multiple","attacks","."]
docstr: Log values to standard output and Tensorflow summary.
  
  :param tag: summary tag.
  :param val: (required float or numpy array) value to be logged.
  :param desc: (optional) additional description to be printed.
docstr_tok: ["Log","values","to","standard","output","and","Tensorflow","summary",".",":","param","tag",":","summary","tag",".",":","param","val",":","(","required","float","or","numpy","array",")","value","to","be","logged",".",":","param","desc",":","(","optional",")","additional","description","to","be","printed","."]
code: def log_value(self, tag, val, desc=""):
      """
      Log values to standard output and Tensorflow summary.
  
      :param tag: summary tag.
      :param val: (required float or numpy array) value to be logged.
      :param desc: (optional) additional description to be printed.
      """
      logging.info("%s (%s): %.4f" % (desc, tag, val))
      self.summary.value.add(tag=tag, simple_value=val)
  
file_path: cleverhans/cleverhans_v3.1.0/examples/multigpu_advtrain/evaluator.py
imports: import logging
  import tensorflow
  from cleverhans.utils_tf import model_eval
  from cleverhans.attacks import FastGradientMethod
  from cleverhans.attacks import MadryEtAl
  from attacks_multigpu import MadryEtAlMultiGPU
label_desc: Use image node_id 2 for calling the Evaluator obj's underlying member method code with example usage: obj.log_value(tag, val, desc) without return types