RicardasSim

Leaky ReLU, Parametric ReLU

Mar 17th, 2024 (edited)
1,372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define LEAKY_RELU(x) ((x) > 0 ? (x) : 0.01 * (x))
  5. #define PARAMETRIC_RELU(x, leak_factor) ((x) > 0 ? (x) : (leak_factor) * (x))
  6.  
  7. static float LeakyReLU( float x )
  8. {
  9.     return ( x > 0 ) ? x : 0.01f * x;
  10. }
  11.  
  12. static float ParametricReLU( float x, float leak_factor )
  13. {
  14.     return ( x > 0 ) ? x : leak_factor * x;
  15. }
  16.  
  17. int main()
  18. {
  19.  
  20.     float x, l_f;
  21.  
  22.     // Leaky ReLU with fnc
  23.  
  24.     x = -2.0f;
  25.  
  26.     printf( "x: %f result: %f\n", x, LeakyReLU( x ));
  27.  
  28.     x = -1.0f;
  29.  
  30.     printf( "x: %f result: %f\n", x, LeakyReLU( x ));
  31.  
  32.     x = 0.0f;
  33.  
  34.     printf( "x: %f result: %f\n", x, LeakyReLU( x ));
  35.  
  36.     x = 1.0f;
  37.  
  38.     printf( "x: %f result: %f\n", x, LeakyReLU( x ));
  39.  
  40.     x = 2.0f;
  41.  
  42.     printf( "x: %f result: %f\n", x, LeakyReLU( x ));
  43.  
  44.     printf("\n");
  45.  
  46.     // Leaky ReLU with macro
  47.  
  48.     x = -2.0f;
  49.  
  50.     printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
  51.  
  52.     x = -1.0f;
  53.  
  54.     printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
  55.  
  56.     x = 0.0f;
  57.  
  58.     printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
  59.  
  60.     x = 1.0f;
  61.  
  62.     printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
  63.  
  64.     x = 2.0f;
  65.  
  66.     printf( "x: %f result: %f\n", x, LEAKY_RELU( x ));
  67.  
  68.     printf("\n");
  69.  
  70.     // Parametric ReLU with fnc
  71.  
  72.     l_f = 0.02f;
  73.  
  74.     x = -2.0f;
  75.  
  76.     printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
  77.  
  78.     x = -1.0f;
  79.  
  80.     printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
  81.  
  82.     x = 0.0f;
  83.  
  84.     printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
  85.  
  86.     x = 1.0f;
  87.  
  88.     printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
  89.  
  90.     x = 2.0f;
  91.  
  92.     printf( "x: %f l_f: %f result: %f\n", x, l_f, ParametricReLU( x, l_f ));
  93.  
  94.     printf("\n");
  95.  
  96.     // Parametric ReLU with macro
  97.  
  98.     x = -2.0f;
  99.  
  100.     printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
  101.  
  102.     x = -1.0f;
  103.  
  104.     printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
  105.  
  106.     x = 0.0f;
  107.  
  108.     printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
  109.  
  110.     x = 1.0f;
  111.  
  112.     printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
  113.  
  114.     x = 2.0f;
  115.  
  116.     printf( "x: %f l_f: %f result: %f\n", x, l_f, PARAMETRIC_RELU( x, l_f ));
  117.  
  118.     printf("\n");
  119.  
  120. }
  121.  
  122. /*
  123.  
  124. output:
  125.  
  126. x: -2.000000 result: -0.020000
  127. x: -1.000000 result: -0.010000
  128. x: 0.000000 result: 0.000000
  129. x: 1.000000 result: 1.000000
  130. x: 2.000000 result: 2.000000
  131.  
  132. x: -2.000000 result: -0.020000
  133. x: -1.000000 result: -0.010000
  134. x: 0.000000 result: 0.000000
  135. x: 1.000000 result: 1.000000
  136. x: 2.000000 result: 2.000000
  137.  
  138. x: -2.000000 l_f: 0.020000 result: -0.040000
  139. x: -1.000000 l_f: 0.020000 result: -0.020000
  140. x: 0.000000 l_f: 0.020000 result: 0.000000
  141. x: 1.000000 l_f: 0.020000 result: 1.000000
  142. x: 2.000000 l_f: 0.020000 result: 2.000000
  143.  
  144. x: -2.000000 l_f: 0.020000 result: -0.040000
  145. x: -1.000000 l_f: 0.020000 result: -0.020000
  146. x: 0.000000 l_f: 0.020000 result: 0.000000
  147. x: 1.000000 l_f: 0.020000 result: 1.000000
  148. x: 2.000000 l_f: 0.020000 result: 2.000000
  149.  
  150.  
  151. */
  152.  
Advertisement