def test_activation_functions(self): # Test single activation functions (no other custom computations in layer). space = FloatBox(shape=(3, ), add_batch_rank=True) # ReLU. relu_layer = NNLayer(activation="relu") test = ComponentTest(component=relu_layer, input_spaces=dict(inputs=space)) input_ = space.sample(size=5) expected = relu(input_) test.test(("apply", input_), expected_outputs=expected) # Again manually in case util numpy-relu is broken. input_ = np.array([[1.0, 2.0, -5.0], [-10.0, -100.1, 4.5]]) expected = np.array([[1.0, 2.0, 0.0], [0.0, 0.0, 4.5]]) test.test(("apply", input_), expected_outputs=expected) # Sigmoid. sigmoid_layer = NNLayer(activation="sigmoid") test = ComponentTest(component=sigmoid_layer, input_spaces=dict(inputs=space)) input_ = space.sample(size=10) expected = sigmoid(input_) test.test(("apply", input_), expected_outputs=expected)
def test_dummy_nn_layer(self): # Tests simple pass through (no activation, no layer (graph_fn) computation). space = FloatBox(shape=(3,), add_batch_rank=True) # - fixed 1.0 weights, no biases dummy_layer = NNLayer(activation=None) test = ComponentTest(component=dummy_layer, input_spaces=dict(inputs=space)) input_ = space.sample(size=5) test.test(("apply", input_), expected_outputs=input_)