class_docstr: SPOS trainer.
  
  Parameters
  ----------
  n_warmup : int
      Number of epochs for training super network.
  model_lr : float
      Learning rate for super network.
  model_wd : float
      Weight decay for super network.
  
  Other parameters see Evolution
class_docstr_tok: ["SPOS","trainer",".","Parameters","--","--","--","--","--","n_warmup",":","int","Number","of","epochs","for","training","super","network",".","model_lr",":","float","Learning","rate","for","super","network",".","model_wd",":","float","Weight","decay","for","super","network",".","Other","parameters","see","Evolution"]
code: def search(self, space: BaseSpace, dset, estimator):
      self.model = space
      self.dataset = dset
      self.estimator = estimator
  
      self._prepare()
      self._train()  # train using uniform sampling
      self._search()  # search using evolutionary algorithm
  
      selection = self.export()
  
      # here may sample N , retrain N ,and get best
      print(selection)
      return space.parse_model(selection, self.device)
  
imports: import copy
  from logging import Logger
  from numpy.core.fromnumeric import sort
  import torch
  import torch.nn
  import torch.nn.functional
  from .None import register_nas_algo
  from .base import BaseNAS
  from ..space import BaseSpace
  from ..utils import AverageMeterGroup, replace_layer_choice, replace_input_choice, get_module_order, sort_replaced_module, PathSamplingLayerChoice, PathSamplingInputChoice
  from tqdm import tqdm, trange
  from ....utils import get_logger
  import numpy
  import collections
  import dataclasses
  import random
label_desc: Use image node_id 3 for calling the Spos obj's underlying member method code with example usage: obj.search(space, dset, estimator) and returns: space