[libfann] 111/242: altered stepwise function slightly to get extrema
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 7f8d03126cec602d2e29c04ebc215691970a375e
Author: Steffen Nissen <lukesky at diku.dk>
Date: Tue Mar 30 21:41:40 2004 +0000
altered stepwise function slightly to get extrema
---
src/fann.c | 20 ++++++++++++++++----
src/include/fann_activation.h | 2 +-
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/fann.c b/src/fann.c
index 924f7c6..3c30b97 100644
--- a/src/fann.c
+++ b/src/fann.c
@@ -455,12 +455,18 @@ fann_type* fann_run(struct fann *ann, fann_type *input)
#ifdef FIXEDFANN
case FANN_SIGMOID:
case FANN_SIGMOID_STEPWISE:
+ if(layer_it == last_layer-1){
+ neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, 0, multiplier, neuron_value);
+ }else{
+ neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, 0, multiplier, neuron_value);
+ }
+ break;
case FANN_SIGMOID_SYMMETRIC:
case FANN_SIGMOID_SYMMETRIC_STEPWISE:
if(layer_it == last_layer-1){
- neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, neuron_value);
+ neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, -multiplier, multiplier, neuron_value);
}else{
- neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, neuron_value);
+ neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, -multiplier, multiplier, neuron_value);
}
break;
#else
@@ -477,11 +483,17 @@ fann_type* fann_run(struct fann *ann, fann_type *input)
break;
case FANN_SIGMOID_STEPWISE:
+ if(layer_it == last_layer-1){
+ neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, 0, 1, neuron_value);
+ }else{
+ neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, 0, 1, neuron_value);
+ }
+ break;
case FANN_SIGMOID_SYMMETRIC_STEPWISE:
if(layer_it == last_layer-1){
- neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, neuron_value);
+ neuron_it->value = (fann_type)fann_stepwise(o1, o2, o3, o4, o5, o6, ro1, ro2, ro3, ro4, ro5, ro6, -1, 1, neuron_value);
}else{
- neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, neuron_value);
+ neuron_it->value = (fann_type)fann_stepwise(h1, h2, h3, h4, h5, h6, rh1, rh2, rh3, rh4, rh5, rh6, -1, 1, neuron_value);
}
break;
#endif
diff --git a/src/include/fann_activation.h b/src/include/fann_activation.h
index 33b1fe9..1183afc 100644
--- a/src/include/fann_activation.h
+++ b/src/include/fann_activation.h
@@ -107,7 +107,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
/* defines used for the stepwise linear functions */
#define fann_linear_func(v1, r1, v2, r2, value) ((((r2-r1) * (value-v1))/(v2-v1)) + r1)
-#define fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6, value) (value < v5 ? (value < v3 ? (value < v2 ? (value < v1 ? r1 : fann_linear_func(v1, r1, v2, r2, value)) : fann_linear_func(v2, r2, v3, r3, value)) : (value < v4 ? fann_linear_func(v3, r3, v4, r4, value) : fann_linear_func(v4, r4, v5, r5, value))) : (value < v6 ? fann_linear_func(v5, r5, v6, r6, value) : r6))
+#define fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6, min, max, value) (value < v5 ? (value < v3 ? (value < v2 ? (value < v1 ? min : fann_linear_func(v1, r1, v2, r2, value)) : fann_linear_func(v2, r2, v3, r3, value)) : (value < v4 ? fann_linear_func(v3, r3, v4, r4, value) : fann_linear_func(v4, r4, v5, r5, value))) : (value < v6 ? fann_linear_func(v5, r5, v6, r6, value) : max))
/* FANN_LINEAR */
#define fann_linear(steepness, value) fann_mult(steepness, 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