class_docstr: Multiplies the learning rate by a factor at regular epoch intervals.
  
  This schedule will multiply the learning rate by
  the factor ``change`` every ``step_config`` epochs. For example,
  
  .. code-block:: python
  
      schedule = Schedule(step_config=2, change=0.5)
      optimizer = GradientDescentMomentum(0.1, 0.9, schedule=schedule)
  
  will yield a learning rate schedule of:
  
  .. csv-table::
      :header: "Epoch", "LR"
      :widths: 20, 10
  
      0, 0.1
      1, 0.1
      2, 0.05
      3, 0.05
      4, 0.025
      5, 0.025
      6, 0.0125
      7, 0.0125
class_docstr_tok: ["Multiplies","the","learning","rate","by","a","factor","at","regular","epoch","intervals",".","This","schedule","will","multiply","the","learning","rate","by","the","factor","``","change","``","every","``","step_config","``","epochs",".","For","example",",","..","code-block",":",":","python","schedule","=","Schedule","(","step_config=2",",","change=0.5",")","optimizer","=","GradientDescentMomentum","(","0.1",",","0.9",",","schedule=schedule",")","will","yield","a","learning","rate","schedule","of",":","..","csv-table",":",":",":","header",":","``","Epoch","''",",","``","LR","''",":","widths",":","20",",","10","0",",","0.1","1",",","0.1","2",",","0.05","3",",","0.05","4",",","0.025","5",",","0.025","6",",","0.0125","7",",","0.0125"]
docstr: Returns the current learning rate given the epoch and initial learning rate.
  
  Arguments:
      learning_rate (float): Initial learning rate
      epoch (int): Current epoch, used to calculate the adjusted learning rate.
  
  Returns:
      (float): The adjusted learning rate.
docstr_tok: ["Returns","the","current","learning","rate","given","the","epoch","and","initial","learning","rate",".","Arguments",":","learning_rate","(","float",")",":","Initial","learning","rate","epoch","(","int",")",":","Current","epoch",",","used","to","calculate","the","adjusted","learning","rate",".","Returns",":","(","float",")",":","The","adjusted","learning","rate","."]
code: def get_learning_rate(self, learning_rate, epoch):
      """
      Returns the current learning rate given the epoch and initial learning rate.
  
      Arguments:
          learning_rate (float): Initial learning rate
          epoch (int): Current epoch, used to calculate the adjusted learning rate.
  
      Returns:
          (float): The adjusted learning rate.
      """
      self.steps = np.floor(epoch / self.step_config)
  
      return float(learning_rate * self.change**self.steps)
  
imports: from __future__ import division
  from neon import NervanaObject
  from neon.util.persist import load_class
  import logging
  import numpy
label_desc: Use image node_id 2 for calling the PowerSchedule obj's underlying member method code with example usage: obj.get_learning_rate(learning_rate, epoch) and returns: float