'Propagates the input through the network and returns the output activiation.'

def _propagate_forward(self, input=[]):

    (ai, ao, ah, wi, wo) = (self._ai, self._ao, self._ah, self._wi, self._wo)
    assert (len(input) == (len(ai) - 1))
    for (i, v) in enumerate(input):
        ai[i] = v
    for (j, v) in enumerate(ah):
        ah[j] = sigmoid(sum(((v * wi[i][j]) for (i, v) in enumerate(ai))))
    for (k, v) in enumerate(ao):
        ao[k] = sigmoid(sum(((v * wo[j][k]) for (j, v) in enumerate(ah))))
    return list(ao)
