def predict(self, x):
        """
        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.
            
        """
        # 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
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.