class_docstr: An abstract interface for model wrappers that exposes model symbols
  needed for making an attack. This abstraction removes the dependency on
  any specific neural network package (e.g. Keras) from the core
  code of CleverHans. It can also simplify exposing the hidden features of a
  model when a specific package does not directly expose them.
class_docstr_tok: ["An","abstract","interface","for","model","wrappers","that","exposes","model","symbols","needed","for","making","an","attack",".","This","abstraction","removes","the","dependency","on","any","specific","neural","network","package","(","e.g",".","Keras",")","from","the","core","code","of","CleverHans",".","It","can","also","simplify","exposing","the","hidden","features","of","a","model","when","a","specific","package","does","not","directly","expose","them","."]
docstr: :param x: A symbolic representation (Tensor) of the network input
  :return: A symbolic representation (Tensor) of the output
  probabilities (i.e., the output values produced by the softmax layer).
docstr_tok: [":","param","x",":","A","symbolic","representation","(","Tensor",")","of","the","network","input",":","return",":","A","symbolic","representation","(","Tensor",")","of","the","output","probabilities","(","i.e.",",","the","output","values","produced","by","the","softmax","layer",")","."]
code: def get_probs(self, x, **kwargs):
      """
      :param x: A symbolic representation (Tensor) of the network input
      :return: A symbolic representation (Tensor) of the output
      probabilities (i.e., the output values produced by the softmax layer).
      """
      d = self.fprop(x, **kwargs)
      if self.O_PROBS in d:
          output = d[self.O_PROBS]
          min_prob = tf.reduce_min(output)
          max_prob = tf.reduce_max(output)
          asserts = [
              utils_tf.assert_greater_equal(
                  min_prob, tf.cast(0.0, min_prob.dtype)
              ),
              utils_tf.assert_less_equal(
                  max_prob, tf.cast(1.0, min_prob.dtype)
              ),
          ]
          with tf.control_dependencies(asserts):
              output = tf.identity(output)
          return output
      elif self.O_LOGITS in d:
          return tf.nn.softmax(logits=d[self.O_LOGITS])
      else:
          raise ValueError("Cannot find probs or logits.")
  
imports: from abc import ABCMeta
  import warnings
  import tensorflow
  from cleverhans import utils_tf
label_desc: Use image node_id 5 for calling the Model obj's underlying member method code with example usage: obj.get_probs(x) and returns: output, tf