docs: def mean_loss_ratios_with_steps(self, steps):
          """
          Split the mean loss ratios, producing a new set of loss ratios. The new
          set of loss ratios always includes 0.0 and 1.0
  
          :param int steps:
              the number of steps we make to go from one loss
              ratio to the next. For example, if we have [0.5, 0.7]::
  
               steps = 1 produces [0.0,  0.5, 0.7, 1]
               steps = 2 produces [0.0, 0.25, 0.5, 0.6, 0.7, 0.85, 1]
               steps = 3 produces [0.0, 0.17, 0.33, 0.5, 0.57, 0.63,
                                   0.7, 0.8, 0.9, 1]
          """
          loss_ratios = self.mean_loss_ratios
  
          if min(loss_ratios) > 0.0:
              # prepend with a zero
              loss_ratios = numpy.concatenate([[0.0], loss_ratios])
  
          if max(loss_ratios) < 1.0:
              # append a 1.0
              loss_ratios = numpy.concatenate([loss_ratios, [1.0]])
  
          return fine_graining(loss_ratios, steps)