class_docstr: Class that sets up and runs the optimization of dual_formulation
class_docstr_tok: ["Class","that","sets","up","and","runs","the","optimization","of","dual_formulation"]
docstr: Computes the min eigen value and corresponding vector of matrix M.
  
  Args:
    use_tf_eig: Whether to use tf's default full eigen decomposition
  Returns:
    eig_vec: Minimum absolute eigen value
    eig_val: Corresponding eigen vector
docstr_tok: ["Computes","the","min","eigen","value","and","corresponding","vector","of","matrix","M.","Args",":","use_tf_eig",":","Whether","to","use","tf","'s","default","full","eigen","decomposition","Returns",":","eig_vec",":","Minimum","absolute","eigen","value","eig_val",":","Corresponding","eigen","vector"]
code: def get_min_eig_vec_proxy(self, use_tf_eig=False):
      """Computes the min eigen value and corresponding vector of matrix M.
  
      Args:
        use_tf_eig: Whether to use tf's default full eigen decomposition
      Returns:
        eig_vec: Minimum absolute eigen value
        eig_val: Corresponding eigen vector
      """
      if use_tf_eig:
          # If smoothness parameter is too small, essentially no smoothing
          # Just output the eigen vector corresponding to min
          return tf.cond(
              self.smooth_placeholder < 1e-8,
              self.tf_min_eig_vec,
              self.tf_smooth_eig_vec,
          )
  
      # Using autograph to automatically handle
      # the control flow of minimum_eigen_vector
      min_eigen_tf = autograph.to_graph(utils.minimum_eigen_vector)
  
      def _vector_prod_fn(x):
          return self.dual_object.get_psd_product(x)
  
      estimated_eigen_vector = min_eigen_tf(
          x=self.eig_init_vec_placeholder,
          num_steps=self.eig_num_iter_placeholder,
          learning_rate=self.params["eig_learning_rate"],
          vector_prod_fn=_vector_prod_fn,
      )
      return estimated_eigen_vector
  
file_path: cleverhans/cleverhans/experimental/certification/optimization.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import json
  import os
  import numpy
  from scipy.sparse.linalg import eigs, LinearOperator
  import tensorflow
  from tensorflow.contrib import autograph
  from cleverhans.experimental.certification import utils
label_desc: Use image node_id 4 for calling the Optimization obj's underlying member method code with example usage: obj.get_min_eig_vec_proxy(use_tf_eig) and returns: estimated_eigen_vector, tf, self