void NeuralNetworkTest::test_prune_output(void) { message += "test_prune_output\n"; NeuralNetwork nn; // Test nn.set(1, 1); nn.prune_output(0); assert_true(nn.get_inputs_pointer()->get_inputs_number() == 1, LOG); assert_true(nn.get_outputs_pointer()->get_outputs_number() == 0, LOG); // Test nn.set(2, 2, 2); nn.prune_output(1); assert_true(nn.get_inputs_pointer()->get_inputs_number() == 2, LOG); assert_true(nn.get_outputs_pointer()->get_outputs_number() == 1, LOG); }
void NeuralNetworkTest::test_calculate_outputs(void) { message += "test_calculate_outputs\n"; NeuralNetwork nn; unsigned inputs_number; unsigned outputs_number; Vector<unsigned> architecture; Vector<double> inputs; Vector<double> outputs; unsigned parameters_number; Vector<double> parameters; // Test nn.set(3, 4, 2); nn.initialize_parameters(0.0); inputs.set(3, 0.0); outputs = nn.calculate_outputs(inputs); assert_true(outputs == 0.0, LOG); // Test nn.set(1, 1, 1); nn.initialize_parameters(0.0); inputs.set(1, 0.0); outputs = nn.calculate_outputs(inputs); assert_true(outputs == 0.0, LOG); // Test nn.set(1, 1); inputs.set(1); inputs.randomize_normal(); parameters = nn.arrange_parameters(); assert_true( nn.calculate_outputs(inputs) == nn.calculate_outputs(inputs, parameters), LOG); // Test nn.set(4, 3, 5); inputs.set(4, 0.0); parameters_number = nn.count_parameters_number(); parameters.set(parameters_number, 0.0); outputs = nn.calculate_outputs(inputs, parameters); assert_true(outputs.size() == 5, LOG); assert_true(outputs == 0.0, LOG); // Test architecture.set(5); architecture.randomize_uniform(5, 10); nn.set(architecture); inputs_number = nn.get_inputs_pointer()->get_inputs_number(); outputs_number = nn.get_outputs_pointer()->get_outputs_number(); inputs.set(inputs_number, 0.0); parameters_number = nn.count_parameters_number(); parameters.set(parameters_number, 0.0); outputs = nn.calculate_outputs(inputs, parameters); assert_true(outputs.size() == outputs_number, LOG); assert_true(outputs == 0.0, LOG); }