class_docstr: DARTS trainer.
  
  Parameters
  ----------
  num_epochs : int
      Number of epochs planned for training.
  workers : int
      Workers for data loading.
  gradient_clip : float
      Gradient clipping. Set to 0 to disable. Default: 5.
  model_lr : float
      Learning rate to optimize the model.
  model_wd : float
      Weight decay to optimize the model.
  arch_lr : float
      Learning rate to optimize the architecture.
  arch_wd : float
      Weight decay to optimize the architecture.
  device : str or torch.device
      The device of the whole process
code: def __init__(
      self,
      num_epochs=5,
      workers=4,
      gradient_clip=5.0,
      model_lr=1e-3,
      model_wd=5e-4,
      arch_lr=3e-4,
      arch_wd=1e-3,
      device="auto",
  ):
      super().__init__(device=device)
      self.num_epochs = num_epochs
      self.workers = workers
      self.gradient_clip = gradient_clip
      self.model_optimizer = torch.optim.Adam
      self.arch_optimizer = torch.optim.Adam
      self.model_lr = model_lr
      self.model_wd = model_wd
      self.arch_lr = arch_lr
      self.arch_wd = arch_wd
  
imports: import logging
  import torch
  import torch.optim
  import torch.nn
  import torch.nn.functional
  from .None import register_nas_algo
  from .base import BaseNAS
  from ..estimator.base import BaseEstimator
  from ..space import BaseSpace
  from ..utils import replace_layer_choice, replace_input_choice
label_desc: Use image node_id 1 to create a new Darts object from inherited base classes: BaseNAS with example: obj = Darts(num_epochs, workers, gradient_clip, model_lr, model_wd, arch_lr, arch_wd, device)