[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