Ejemplo n.º 1
0
 def test_output_error_passed_back_in_the_chain_matches_input_dim(self):
     x, err, lr = np.array([1, 2, 3]), np.array([
         0.5,
     ]), 3
     layer = Output(x)
     layer.solve_bwd(err, lr)
     self.assertEqual(layer.e.shape, layer.x.shape)
Ejemplo n.º 2
0
 def test_output_gradient_descent(self):
     x, err, lr = np.array([1, 2, 3]), np.array([
         0.5,
     ]), 3
     layer = Output(x)
     layer.solve_bwd(err, lr)
     expected = -lr * np.repeat(err, x.shape[0]) * layer.partial_s * layer.x
     self.assertTrue((expected == layer.delta_w).all())
Ejemplo n.º 3
0
 def test_output_acc_error_to_be_passed_back_in_the_chain(self):
     x, err, lr = np.array([1, 2, 3]), np.array([
         0.5,
     ]), 3
     layer = Output(x)
     layer.solve_bwd(err, lr)
     expected = np.repeat(err, x.shape[0]) * layer.partial_s * layer.w
     self.assertTrue((expected == layer.e).all())
Ejemplo n.º 4
0
 def test_output_partial_s(self):
     x = np.array([1, 2, 3])
     layer = Output(x)
     layer.solve_bwd(np.array([
         0.5,
     ]))
     partial_s = layer.s * (1 - layer.s)
     self.assertTrue((layer.partial_s == partial_s).all())
     self.assertEqual(layer.partial_s.shape, x.shape)
Ejemplo n.º 5
0
 def test_output_solve_bwd_check_args_shape(self):
     layer = Output(np.array([1, 2]))
     regex = 'The shape for net error should be 1'
     with self.assertRaisesRegex(ValueError, regex):
         layer.solve_bwd(np.array([1, 2]))
Ejemplo n.º 6
0
 def test_output_value(self):
     layer = Output(np.array([1, 2, 3]))
     expected = 1 / (1 + np.exp(-layer.z))
     self.assertTrue((layer.s == expected).all())
Ejemplo n.º 7
0
 def test_output_solve_bwd_check_args_np(self):
     layer = Output(np.array([1, 2]))
     regex = 'The network error should be a numpy array'
     with self.assertRaisesRegex(TypeError, regex):
         layer.solve_bwd('void')
Ejemplo n.º 8
0
 def test_output_for_output_layer_is_one(self):
     layer = Output(np.array([1, 2, 3]))
     self.assertEqual(layer.s.size, 1)
Ejemplo n.º 9
0
 def test_z_is_a_dot_product_between_the_input_and_weight(self):
     i = np.array([1, 2, 3])
     layer = Output(i)
     self.assertTrue((layer.z == np.dot(i, layer.w)).all())
Ejemplo n.º 10
0
 def test_layer_x_is_input(self):
     i = np.array([1, 2, 3])
     layer = Output(i)
     self.assertTrue((layer.x == i).all())
Ejemplo n.º 11
0
 def test_output_requires_an_arg(self):
     with self.assertRaises(TypeError):
         Output()
Ejemplo n.º 12
0
 def test_output_is_a_Layer_subclass(self):
     self.assertIsInstance(Output(np.array([1, 2])), Layer)