Thomas Robitaille
14 years ago
Hello,
I am trying to use the FANN library with the attached training data, and am running into issues relating to convergence. I'm using the following parameters
#include "fann.h"
int main()
{
const unsigned int num_input = 10;
const unsigned int num_output = 10;
const unsigned int num_layers = 3;
const unsigned int num_neurons_hidden = 20;
const float desired_error = (const float) 0.001;
const unsigned int max_epochs = 500000;
const unsigned int epochs_between_reports = 1;
struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);
fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
fann_train_on_file(ann, "seds_data", max_epochs, epochs_between_reports, desired_error);
fann_destroy(ann);
return 0;
}
but after 7 iterations the algorithm does not improve the error any further:
Epochs 1. Current error: 2.1306848526. Bit fail 59790.
Epochs 2. Current error: 2.1581296921. Bit fail 59790.
Epochs 3. Current error: 1.4474408627. Bit fail 59790.
Epochs 4. Current error: 1.0437147617. Bit fail 49237.
Epochs 5. Current error: 1.0190790892. Bit fail 48572.
Epochs 6. Current error: 1.0173554420. Bit fail 48572.
Epochs 7. Current error: 1.0172768831. Bit fail 48572.
Epochs 8. Current error: 1.0172756910. Bit fail 48572.
Epochs 9. Current error: 1.0172756910. Bit fail 48572.
etc.
If I try and run the resulting network with the first set of training data, I get -1 values for all output values. I was wondering whether this is due to my choice of parameter values, or is to do with an issue with the data? Can anyone suggest how to improve the convergence of this NN?
Thanks for any advice,
Thomas
I
I am trying to use the FANN library with the attached training data, and am running into issues relating to convergence. I'm using the following parameters
#include "fann.h"
int main()
{
const unsigned int num_input = 10;
const unsigned int num_output = 10;
const unsigned int num_layers = 3;
const unsigned int num_neurons_hidden = 20;
const float desired_error = (const float) 0.001;
const unsigned int max_epochs = 500000;
const unsigned int epochs_between_reports = 1;
struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);
fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
fann_train_on_file(ann, "seds_data", max_epochs, epochs_between_reports, desired_error);
fann_destroy(ann);
return 0;
}
but after 7 iterations the algorithm does not improve the error any further:
Epochs 1. Current error: 2.1306848526. Bit fail 59790.
Epochs 2. Current error: 2.1581296921. Bit fail 59790.
Epochs 3. Current error: 1.4474408627. Bit fail 59790.
Epochs 4. Current error: 1.0437147617. Bit fail 49237.
Epochs 5. Current error: 1.0190790892. Bit fail 48572.
Epochs 6. Current error: 1.0173554420. Bit fail 48572.
Epochs 7. Current error: 1.0172768831. Bit fail 48572.
Epochs 8. Current error: 1.0172756910. Bit fail 48572.
Epochs 9. Current error: 1.0172756910. Bit fail 48572.
etc.
If I try and run the resulting network with the first set of training data, I get -1 values for all output values. I was wondering whether this is due to my choice of parameter values, or is to do with an issue with the data? Can anyone suggest how to improve the convergence of this NN?
Thanks for any advice,
Thomas
I