code: def _setup_process(self, nth_process):
      self.nth_process = nth_process
  
      self.hg_conv = HyperGradientConv(self.s_space)
  
      initialize = self.hg_conv.conv_initialize(self.initialize)
      search_space_positions = self.s_space.positions
  
      # conv warm start for smbo from values into positions
      if "warm_start_smbo" in self.opt_params:
          self.opt_params[
              "warm_start_smbo"
          ] = self.hg_conv.conv_memory_warm_start(
              self.opt_params["warm_start_smbo"]
          )
  
      gfo_constraints = [
          Constraint(constraint, self.s_space)
          for constraint in self.constraints
      ]
  
      self.gfo_optimizer = self.optimizer_class(
          search_space=search_space_positions,
          initialize=initialize,
          constraints=gfo_constraints,
          random_state=self.random_state,
          nth_process=nth_process,
          **self.opt_params,
      )
  
      self.conv = self.gfo_optimizer.conv
  
file_path: Hyperactive/hyperactive/optimizers/hyper_optimizer.py
imports: import numpy
  from .objective_function import ObjectiveFunction
  from .hyper_gradient_conv import HyperGradientConv
  from .optimizer_attributes import OptimizerAttributes
  from .constraint import Constraint
label_desc: Use image node_id 4 for calling the HyperOptimizer obj's underlying member method code with example usage: obj._setup_process(nth_process) without return types