code: def tune_learning_rate(self, h, parameter_list=None):
          
  
          if parameter_list is None:
              parameter_list = [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0,100000.0]
          
          for parameter in parameter_list:
              self.learning_rate = parameter
              _, losses, _ = self.run(h, recalculate=False)
              loss = losses[0]
              if parameter == parameter_list[0]:
                  best_rate = parameter
                  best_loss = loss
              else:
                  if loss < best_loss:
                      best_loss = loss
                      best_rate = parameter
  
          self.learning_rate = best_rate
docs: Naive tuning of the the learning rate on the in-sample data
          
          Parameters
          ----------
          h : int
              How many steps to run Aggregate on
  
          parameter_list: list
              List of parameters to search for a good learning rate over
  
          Returns
          ----------
          - Void (changes self.learning_rate)