'Initializes the network with the given number of input, hidden, output nodes.
Initializes the node weights uniformly random between a and b.'

def _weight_initialization(self, i=1, o=1, hidden=1, method=RANDOM, a=0.0, b=1.0):

    i += 1
    self._ai = ([1.0] * i)
    self._ao = ([1.0] * o)
    self._ah = ([1.0] * hidden)
    self._wi = matrix(i, hidden, a, b)
    self._ci = matrix(i, hidden)
    self._wo = matrix(hidden, o, a, b)
    self._co = matrix(hidden, o)
