code: def predict(self, x):
          
          # forward pass to hidden layers
          for l in self.layers:
              x = l.predict(x)
          self.x[1:] = x
          # forward pass to output layer
          if self.outputs == 1:
              self.y = np.dot(self.w, self.x)
          else: 
              self.y = np.sum(self.w*self.x, axis=1)
          return self.y
docs: This function make forward pass through MLP (no update).
  
          **Args:**
  
          * `x` : input vector (1-dimensional array)
  
          **Returns:**
          
          * `y` : output of MLP (float or 1-diemnsional array).
              Size depends on number of MLP outputs.