commit 23bfc8c623e178121b92e404cf1292e87d53d3e7
parent 04e7ca9bdc0c176e2a42682fb3feb339450eaa3e
Author: David Freifeld <freifeld.david@gmail.com>
Date: Wed, 29 Jul 2020 18:01:17 -0700
New activations are now allowed to be added
Diffstat:
1 file changed, 17 insertions(+), 0 deletions(-)
diff --git a/src/bpnn.cpp b/src/bpnn.cpp
@@ -84,6 +84,7 @@ void Network::init_decay(char* type, float a_0, float k)
}
}
+// Gross code inbound
void Network::add_layer(int nodes, char* name)
{
length++;
@@ -121,6 +122,22 @@ void Network::add_layer(int nodes, char* name)
layers[length-1].activation = rectifier(linear);
layers[length-1].activation_deriv = rectifier(linear_deriv);
}
+ else if (strcmp(name, "leaky_relu") == 0) {
+ layers[length-1].activation = leaky_relu;
+ layers[length-1].activation_deriv = leaky_relu_deriv;
+ }
+ else if (strcmp(name, "bipolar_sigmoid") == 0) {
+ layers[length-1].activation = bipolar_sigmoid;
+ layers[length-1].activation_deriv = bipolar_sigmoid_deriv;
+ }
+ else if (strcmp(name, "tanh") == 0) {
+ layers[length-1].activation = tanh();
+ layers[length-1].activation_deriv = [](float x) -> float {1.0/cosh(x)};
+ }
+ else if (strcmp(name, "hard_tanh") == 0) {
+ layers[length-1].activation = hard_tanh();
+ layers[length-1].activation_deriv = hard_tanh_deriv();
+ }
else if (strcmp(name, "resig") == 0) {
layers[length-1].activation = rectifier(sigmoid);
layers[length-1].activation_deriv = rectifier(sigmoid_deriv);