class_docstr: An example schedule that trains using traditional data parallelism with gradient
  accumulation.
class_docstr_tok: ["An","example","schedule","that","trains","using","traditional","data","parallelism","with","gradient","accumulation","."]
code: def steps(self):
      """"""
      for step_id in range(self.micro_batches):
          cmds = [
              LoadMicroBatch(buffer_id=0),
              ForwardPass(buffer_id=0),
              BackwardPass(buffer_id=0),
          ]
          if step_id == self.micro_batches - 1:
              cmds.extend(
                  [
                      ReduceGrads(),
                      OptimizerStep(),
                  ]
              )
          yield cmds
  
imports: from ..utils import call_to_str
  from abc import ABC, abstractmethod
label_desc: Use image node_id 1 for calling the DataParallelSchedule obj's underlying member method code with example usage: obj.steps() without return types