code: def backward(self, out_grads=None):
          
          assert self.binded and self.params_initialized
  
          for i_layer, module in reversed(list(zip(range(len(self._modules)), self._modules))):
              module.backward(out_grads=out_grads)
              if i_layer == 0:
                  break
  
              out_grads = module.get_input_grads()
docs: Backward computation.