Ejemplo n.º 1
0
void NeuralNetworkTest::test_save(void) {
  message += "test_save\n";

  std::string file_name = "../data/neural_network.xml";

  NeuralNetwork nn;

  IndependentParameters* ipp;

  // Empty multilayer perceptron

  nn.set();
  nn.save(file_name);

  // Only network architecture

  nn.set(2, 4, 3);
  nn.save(file_name);

  // Only independent parameters

  nn.set(2);
  nn.save(file_name);

  // Both network architecture and independent parameters

  nn.set(1, 1, 1);
  nn.construct_independent_parameters();

  ipp = nn.get_independent_parameters_pointer();

  ipp->set_parameters_number(1);
  nn.save(file_name);
}
Ejemplo n.º 2
0
void NeuralNetworkTest::test_get_independent_parameters_pointer(void) {
  message += "test_get_independent_parameters_pointer\n";

  NeuralNetwork nn;

  nn.construct_independent_parameters();

  // Test

  assert_true(nn.get_independent_parameters_pointer() != NULL, LOG);
}
Ejemplo n.º 3
0
void NeuralNetworkTest::test_initialize_parameters(void) {
  message += "test_initialize_parameters\n";

  NeuralNetwork nn;
  Vector<double> parameters;

  IndependentParameters* ip;

  // Test

  nn.set(1, 1, 1);

  nn.construct_independent_parameters();

  ip = nn.get_independent_parameters_pointer();
  ip->set_parameters_number(1);

  nn.randomize_parameters_normal(1.0, 0.0);
  parameters = nn.arrange_parameters();
  assert_true(parameters == 1.0, LOG);
}
Ejemplo n.º 4
0
void NeuralNetworkTest::test_set_parameters(void) {
  message += "test_set_parameters\n";

  Vector<unsigned> multilayer_perceptron_architecture;
  NeuralNetwork nn;

  unsigned parameters_number;
  Vector<double> parameters;

  // Test

  nn.set_parameters(parameters);

  parameters = nn.arrange_parameters();
  assert_true(parameters.size() == 0, LOG);

  // Test

  multilayer_perceptron_architecture.set(2, 2);
  nn.set(multilayer_perceptron_architecture);

  nn.construct_independent_parameters();

  nn.get_independent_parameters_pointer()->set_parameters_number(2);

  parameters_number = nn.count_parameters_number();

  parameters.set(0.0, 1.0, parameters_number - 1);
  nn.set_parameters(parameters);
  parameters = nn.arrange_parameters();

  assert_true(parameters.size() == parameters_number, LOG);
  assert_true(parameters[0] == 0.0, LOG);
  assert_true(parameters[parameters_number - 1] == parameters_number - 1.0,
              LOG);
}