class_docstr: Common functionality between `Optimizer` and `OptimWrapper`
class_docstr_tok: ["Common","functionality","between","`","Optimizer","`","and","`","OptimWrapper","`"]
code: def set_hyper(
      self,
      k,  # Hyperparameter key or slice of keys
      v,  # Hyperparameter value or slice of values
  ):
      if isinstance(v, slice):
          if v.start:
              v = even_mults(v.start, v.stop, len(self.param_lists))
          else:
              v = [v.stop / 10] * (len(self.param_lists) - 1) + [v.stop]
      v = L(v, use_list=None)
      if len(v) == 1:
          v = v * len(self.param_lists)
      assert len(v) == len(
          self.hypers
      ), f"Trying to set {len(v)} values for {k} but there are {len(self.param_lists)} parameter groups."
      self._set_hyper(k, v)
  
imports: from __future__ import annotations
  from .torch_basics import *
label_desc: Use image node_id 7 for calling the _BaseOptimizer obj's underlying member method code with example usage: obj.set_hyper(k, v) without return types