code: def _propagate(self, x, influences, **kwargs):
          
          activation, difference_x = self.forward(x)
          update = self.backward(difference_x, influences, activation)
          # If batch size is 1 we can leave out the call to mean.
          if update.shape[0] == 1:
              self.weights += update[0]
          else:
              self.weights += update.mean(0)
  
          return activation
docs: Propagate a single batch of examples through the network.