code: def fit(self, lrs, n_cycle, wds=None, **kwargs):
  
          
          self.sched = None
          layer_opt = self.get_layer_opt(lrs, wds)
          return self.fit_gen(self.model, self.data, layer_opt, n_cycle, **kwargs)
docs: Method gets an instance of LayerOptimizer and delegates to self.fit_gen(..)
  
          Note that one can specify a list of learning rates which, when appropriately
          defined, will be applied to different segments of an architecture. This seems
          mostly relevant to ImageNet-trained models, where we want to alter the layers
          closest to the images by much smaller amounts.
  
          Likewise, a single or list of weight decay parameters can be specified, which
          if appropriate for a model, will apply variable weight decay parameters to
          different segments of the model.
  
          Args:
              lrs (float or list(float)): learning rate for the model
  
              n_cycle (int): number of cycles (or iterations) to fit the model for
  
              wds (float or list(float)): weight decay parameter(s).
  
              kwargs: other arguments
  
          Returns:
              None