class_docstr: A factory for an expression for the following tuple per (optionally
  adversarial) example:
    - bool per indicating whether each the example was classified correctly
    - probability assigned to that prediction
code: def __eq__(self, other):
      # Make factory hashable so that no two factories for the
      # same model will be used to build redundant tf graphs
      if not isinstance(other, _CorrectAndProbFactory):
          return False
      return self.properties_to_hash == other.properties_to_hash
  
imports: from distutils.version import LooseVersion
  import warnings
  import numpy
  from six.moves import range
  import tensorflow
  import cleverhans
  from cleverhans import canary
  from cleverhans.utils import create_logger
  from cleverhans.utils_tf import infer_devices
label_desc: Use image node_id 3 for calling the _CorrectAndProbFactory obj's underlying member method code with example usage: obj.__eq__(other) and returns: unknown, False