#include <stdio.h>
#include <stdlib.h>
#define LEAKY_RELU(x) ((x) > 0 ? (x) : 0.01 * (x))
#define PARAMETRIC_RELU(x, leak_factor) ((x) > 0 ? (x) : (leak_factor) * (x))
static float LeakyReLU( float x )
{
return ( x > 0 ) ? x : 0.01f * x;
}
static float ParametricReLU( float x, float leak_factor )
{
return ( x > 0 ) ? x : leak_factor * x;
}
int main()
{
float x, l_f;
// Leaky ReLU with fnc
x = -2.0f;
printf( "x: %f result: %f\n", x, LeakyReLU( x ));
x = -1.0f;
printf( "x: %f result: %f\n", x, LeakyReLU( x ));
x = 0.0f;
printf( "x: %f result: %f\n", x, LeakyReLU( x ));
x = 1.0f;
printf( "x: %f result: %f\n", x, LeakyReLU( x ));
x = 2.0f;
printf( "x: %f result: %f\n", x, LeakyReLU( x ));
printf("\n");
// Leaky ReLU with macro
x = -2.0f;
printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
x = -1.0f;
printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
x = 0.0f;
printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
x = 1.0f;
printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
x = 2.0f;
printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
printf("\n");
// Parametric ReLU with fnc
l_f = 0.02f;
x = -2.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
x = -1.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
x = 0.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
x = 1.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
x = 2.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
printf("\n");
// Parametric ReLU with macro
x = -2.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
x = -1.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
x = 0.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
x = 1.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
x = 2.0f;
printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
printf("\n");
}
/*
output:
x: -2.000000 result: -0.020000
x: -1.000000 result: -0.010000
x: 0.000000 result: 0.000000
x: 1.000000 result: 1.000000
x: 2.000000 result: 2.000000
x: -2.000000 result: -0.020000
x: -1.000000 result: -0.010000
x: 0.000000 result: 0.000000
x: 1.000000 result: 1.000000
x: 2.000000 result: 2.000000
x: -2.000000 l_f: 0.020000 result: -0.040000
x: -1.000000 l_f: 0.020000 result: -0.020000
x: 0.000000 l_f: 0.020000 result: 0.000000
x: 1.000000 l_f: 0.020000 result: 1.000000
x: 2.000000 l_f: 0.020000 result: 2.000000
x: -2.000000 l_f: 0.020000 result: -0.040000
x: -1.000000 l_f: 0.020000 result: -0.020000
x: 0.000000 l_f: 0.020000 result: 0.000000
x: 1.000000 l_f: 0.020000 result: 1.000000
x: 2.000000 l_f: 0.020000 result: 2.000000
*/
Comments
0 B
|👍
/👎
0 B
|👍
/👎