class_docstr: Linear temperature scheduler to support temperature annealing in :class:`GumbelDartsLightningModule`.
  Temperature decreases from ``init`` to ``min`` linearly throughout ``total`` given in :meth:`step`.
  
  Parameters
  ----------
  init
      Initial temperature.
  min
      Minimum temperature.
class_docstr_tok: ["Linear","temperature","scheduler","to","support","temperature","annealing","in",":","class",":","`","GumbelDartsLightningModule","`",".","Temperature","decreases","from","``","init","``","to","``","min","``","linearly","throughout","``","total","``","given","in",":","meth",":","`","step","`",".","Parameters","--","--","--","--","--","init","Initial","temperature",".","min","Minimum","temperature","."]
code: def __init__(
      self, init: float, min: float
  ):  # pylint: disable=redefined-builtin
      if not isinstance(init, float) and isinstance(
          min, float
      ):  # pylint: disable=redefined-builtin
          raise TypeError("init and min must be float")
      if not (init >= min >= 0):
          raise ValueError(
              "Invalid temperature range: init >= min >= 0"
          )
  
      self.init = init
      self.min = min
  
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 LinearTemperatureScheduler object  with example: obj = LinearTemperatureScheduler(init, min)