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 on_train_epoch_start(self):
      if self.trainer.current_epoch < self.warmup_epochs:
          # Still warming up
          for param in self.arch_parameters():
              param.requires_grad_(False)
      elif self.trainer.current_epoch >= self.warmup_epochs > 0:
          # Warmed up, and requires_grad is once False
          for param in self.arch_parameters():
              param.requires_grad_()
      return super().on_train_epoch_start()
  
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 4 for calling the DartsLightningModule obj's underlying member method code with example usage: obj.on_train_epoch_start() and returns: super