[libfann] 109/242: A few optimizations for fann_train
Christian Kastner
chrisk-guest at moszumanska.debian.org
Sat Oct 4 21:10:25 UTC 2014
This is an automated email from the git hooks/post-receive script.
chrisk-guest pushed a commit to tag Version2_0_0
in repository libfann.
commit 5eaa9db4c576b61b0b029a92fedd38f5b203e391
Author: Evan Nemerson <evan at coeus-group.com>
Date: Thu Mar 25 05:24:31 2004 +0000
A few optimizations for fann_train
---
src/fann_train.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/fann_train.c b/src/fann_train.c
index 6f9ddf6..6081a27 100644
--- a/src/fann_train.c
+++ b/src/fann_train.c
@@ -107,7 +107,7 @@ void fann_train(struct fann *ann, fann_type *input, fann_type *desired_output)
for(neuron_it = layer_it->first_neuron;
neuron_it != last_neuron; neuron_it++){
tmp_delta = *(delta_begin + (neuron_it - first_neuron));
- for(i = 0; i < neuron_it->num_connections; i++){
+ for(i = neuron_it->num_connections ; i-- ; ){
*(delta_begin + i + shift_prev_layer) += tmp_delta * neuron_it->weights[i];
#ifdef DEBUGTRAIN
printf("delta2[%d] = "FANNPRINTF" += ("FANNPRINTF" * "FANNPRINTF")\n", (i + shift_prev_layer), *(delta_begin + i + shift_prev_layer), tmp_delta, neuron_it->weights[i]);
@@ -118,7 +118,7 @@ void fann_train(struct fann *ann, fann_type *input, fann_type *desired_output)
for(neuron_it = layer_it->first_neuron;
neuron_it != last_neuron; neuron_it++){
tmp_delta = *(delta_begin + (neuron_it - first_neuron));
- for(i = 0; i < neuron_it->num_connections; i++){
+ for(i = neuron_it->num_connections ; i-- ; ){
*(delta_begin + (neuron_it->connected_neurons[i] - first_neuron)) +=
tmp_delta * neuron_it->weights[i];
}
@@ -183,19 +183,19 @@ void fann_train(struct fann *ann, fann_type *input, fann_type *desired_output)
neurons = (layer_it-1)->first_neuron;
for(neuron_it = layer_it->first_neuron;
neuron_it != last_neuron; neuron_it++){
- tmp_delta = *(delta_begin + (neuron_it - first_neuron));
- for(i = 0; i < neuron_it->num_connections; i++){
+ tmp_delta = *(delta_begin + (neuron_it - first_neuron)) * learning_rate;
+ for(i = neuron_it->num_connections ; i-- ; ){
#ifdef DEBUGTRAIN
printf("weights[%d] += "FANNPRINTF" = %f * %f\n", i, tmp_delta * neurons[i].value, tmp_delta, neurons[i].value);
#endif
- neuron_it->weights[i] += learning_rate * tmp_delta * neurons[i].value;
+ neuron_it->weights[i] += tmp_delta * neurons[i].value;
}
}
}else{
for(neuron_it = layer_it->first_neuron;
neuron_it != last_neuron; neuron_it++){
tmp_delta = *(delta_begin + (neuron_it - first_neuron));
- for(i = 0; i < neuron_it->num_connections; i++){
+ for(i = neuron_it->num_connections ; i-- ; ){
neuron_it->weights[i] += learning_rate * tmp_delta * neuron_it->connected_neurons[i]->value;
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libfann.git
More information about the debian-science-commits
mailing list