def test_gateway_partial_s(self): layer = Gateway(np.array([1, 2])) layer.solve_bwd(np.repeat(1, 3))
def test_delta_w_dimension_matches_w_dimension(self): layer = Gateway(np.array([1, 2])) delta_w = layer.solve_bwd(np.repeat(1, 3)) self.assertTrue(delta_w.shape == layer.w.shape)
def test_output_for_gateway_layer_matches_dim(self): layer = Gateway(np.array([1, 2])) self.assertEqual(len(layer.s), layer.dim)
def test_gateway_solve_bwd_check_args_np(self): layer = Gateway(np.array([1, 2])) regex = 'The accumulated error should be a numpy array' with self.assertRaisesRegex(TypeError, regex): layer.solve_bwd('void')
def test_z_is_a_dot_product_element_wise_between_input_and_weight(self): i = np.array([1, 2]) layer = Gateway(i) z = (layer.x * layer.w).sum(axis=1) self.assertTrue((layer.z == z).all())
def test_output_for_gateway_layer(self): layer = Gateway(np.array([1, 2])) expected = 1 / (1 + np.exp(-layer.z)) self.assertTrue((layer.s == expected).all())
def test_x_is_cloned_on_gateway_layer(self): layer = Gateway(np.array([1, 2])) self.assertTrue((layer.x == np.array([[1, 2], [1, 2], [1, 2]])).all())
def test_auto_weights_are_smaller_than_one(self): layer = Gateway(np.zeros(300)) # big enough self.assertTrue((layer.w < 1).all())
def test_auto_weights_are_greater_than_minus_one(self): layer = Gateway(np.zeros(300)) # big enough self.assertTrue((layer.w > -1).all())
def test_auto_weigths_are_reshaped_on_gateway_layer(self): layer = Gateway(np.array([1, 2])) self.assertEqual(layer.w.shape, (3, 2))
def test_gateway_is_a_Layer_subclass(self): self.assertIsInstance(Gateway(np.array([1, 2])), Layer)