class_docstr: Search implementation of :class:`~nni.nas.strategy.DARTS`.
  
  The dataloader is expected to be a CombinedLoader with two keys: ``train`` and ``val``.
  
  See Also
  --------
  nni.nas.strategy.DARTS
  nni.nas.pytorch.oneshot.base_lightning.BaseOneShotLightningModule
class_docstr_tok: ["Search","implementation","of",":","class",":","`","~nni.nas.strategy.DARTS","`",".","The","dataloader","is","expected","to","be","a","CombinedLoader","with","two","keys",":","``","train","``","and","``","val","``",".","See","Also","--","--","--","--","nni.nas.strategy.DARTS","nni.nas.pytorch.oneshot.base_lightning.BaseOneShotLightningModule"]
code: def __init__(
      self,
      training_module: pl.LightningModule,
      *,
      arc_learning_rate: float = 3.0e-4,
      gradient_clip_val: float | None = None,
      log_prob_every_n_step: int = 10,
      warmup_epochs: int = 0,
      penalty: ExpectationProfilerPenalty | None = None,
  ):
      super().__init__(training_module)
      self.arc_learning_rate = arc_learning_rate
      self.gradient_clip_val = gradient_clip_val
      self.log_prob_every_n_step = log_prob_every_n_step
      self.warmup_epochs = warmup_epochs
  
      assert penalty is None or isinstance(
          penalty, ExpectationProfilerPenalty
      )
      self.penalty = penalty
  
imports: from __future__ import annotations
  import logging
  import pytorch_lightning
  import torch
  import torch.nn
  import torch.optim
  from .base_lightning import BaseOneShotLightningModule
  from .supermodule.differentiable import GumbelSoftmax
  from .profiler import ExpectationProfilerPenalty
label_desc: Use image node_id 1 to create a new DartsLightningModule object from inherited base classes: BaseOneShotLightningModule with example: obj = DartsLightningModule(training_module)