def test_forwardPropagation(self): for example, predicted in zip(examples, predicteds): ex = toVector(example) pred = toVector(predicted) assert_array_almost_equal(self.network.forwardPropagation(ex), pred, decimal=5)
def test_J(self): for i, (output, predicted) in enumerate(zip(outputs, predicteds)): out = toVector(output) pred = toVector(predicted) self.network.updateCost(out, pred) self.assertAlmostEqual(self.network.J, J[i], places=3) self.network.reset()
def test_cost_computation(self): for output, predicted in zip(outputs, predicteds): out = toVector(output) pred = toVector(predicted) self.network.updateCost(out, pred) self.assertAlmostEqual(self.network.computeCost(len(outputs)), Jtotal, places=4)
def test_upgradeGrads(self): for i, (example, output) in enumerate(zip(examples, outputs)): ex = toVector(example) out = toVector(output) pred = self.network.forwardPropagation(ex) self.network.backPropagation(pred - out) self.network.updateGrads(len(examples)) for i, D in enumerate(self.network.D): assert_array_almost_equal(D, np.array(gradsTotal[i]), decimal=5)
def test_backPropagation(self): for i, (example, output) in enumerate(zip(examples, outputs)): ex = toVector(example) out = toVector(output) pred = self.network.forwardPropagation(ex) self.network.backPropagation(pred - out) for j, D in enumerate(self.network.D): assert_array_almost_equal(D, np.array(grads[i][j]), decimal=5) self.network.reset()
def test_trainTurn(self): datapoints = [(toVector(input), toVector(output)) for input, output in zip(examples, outputs)] self.network.trainTurn(datapoints) for i, D in enumerate(self.network.D): assert_array_almost_equal(D, np.array(gradsTotal[i]), decimal=5) err = self.network.trainTurn(datapoints, updateCost=True) self.assertAlmostEqual(self.network.computeCost(len(examples)), Jtotal, places=2)
def test_toVector(self): attr1 = [1.0, 0.56, 0] assert_array_almost_equal(toVector(attr1), np.array([[1.0], [0.56], [0]]), decimal=5)