Example #1
0
 /// <summary>
 /// Create new struct.
 /// </summary>
 /// <param name="numNeurons">Number of neurons in layer.</param>
 /// <param name="recurrin">Are neurons in layer recurring.</param>
 /// <param name="activeFunc">Neuron activation function.</param>
 public NeuralNetworkLayer(int numNeurons, bool recurrin, NeuralNetwork.NeuronActivationFunction activeFunc)
 {
     numberOfNeurons    = numNeurons;
     recurring          = recurrin;
     activationFunction = activeFunc;
     biases             = null;
 }
Example #2
0
 /// <summary>
 /// Create new struct from existing.
 /// </summary>
 /// <param name="src">Existing layer to copy.</param>
 public NeuralNetworkLayer(NeuralNetworkLayer src)
 {
     numberOfNeurons    = src.numberOfNeurons;
     recurring          = src.recurring;
     activationFunction = src.activationFunction;
     biases             = null;
 }
Example #3
0
        //sample 1d function points and return array of points
        /// <summary>
        /// Sample 1D function from xMin to xMax building array of 2D points.
        /// </summary>
        /// <param name="numSamples"></param>
        /// <param name="func"></param>
        /// <param name="xMin"></param>
        /// <param name="xMax"></param>
        /// <returns>Array of 2D points.</returns>
        public static float[][] SampleFunction(int numSamples, NeuralNetwork.NeuronActivationFunction func, float xMin, float xMax)
        {
            float[][] res = new float[numSamples][];
            for (int i = 0; i < numSamples; i++)
            {
                float sx = (i / (float)(numSamples - 1)) * (xMax - xMin) + xMin;

                res[i] = new float[] {
                    sx,
                    func(sx)
                };
            }
            return(res);
        }
Example #4
0
 public static int GetActivationFunctionID(NeuralNetwork.NeuronActivationFunction activeFunc)
 {
     if (activeFunc == Identity_ActivationFunction)
     {
         return(0);
     }
     if (activeFunc == Rectifier_ActivationFunction)
     {
         return(1);
     }
     if (activeFunc == Sin_ActivationFunction)
     {
         return(2);
     }
     if (activeFunc == Cos_ActivationFunction)
     {
         return(3);
     }
     if (activeFunc == Tan_ActivationFunction)
     {
         return(4);
     }
     if (activeFunc == Tanh_ActivationFunction)
     {
         return(5);
     }
     if (activeFunc == Sinh_ActivationFunction)
     {
         return(6);
     }
     if (activeFunc == Exp_ActivationFunction)
     {
         return(7);
     }
     if (activeFunc == Sigmoid_ActivationFunction)
     {
         return(8);
     }
     if (activeFunc == Sqrt_ActivationFunction)
     {
         return(9);
     }
     if (activeFunc == Pow2_ActivationFunction)
     {
         return(10);
     }
     return(-1);
 }
Example #5
0
 public static string GetActivationFunctionGLSLName(NeuralNetwork.NeuronActivationFunction activeFunc)
 {
     if (activeFunc == Identity_ActivationFunction)
     {
         return("");
     }
     if (activeFunc == Rectifier_ActivationFunction)
     {
         return("rectifier");
     }
     if (activeFunc == Sin_ActivationFunction)
     {
         return("sin");
     }
     if (activeFunc == Cos_ActivationFunction)
     {
         return("cos");
     }
     if (activeFunc == Tan_ActivationFunction)
     {
         return("tan");
     }
     if (activeFunc == Tanh_ActivationFunction)
     {
         return("tanh");
     }
     if (activeFunc == Sinh_ActivationFunction)
     {
         return("sinh");
     }
     if (activeFunc == Exp_ActivationFunction)
     {
         return("exp");
     }
     if (activeFunc == Sigmoid_ActivationFunction)
     {
         return("sigmoid");
     }
     if (activeFunc == Sqrt_ActivationFunction)
     {
         return("sqrt");
     }
     if (activeFunc == Pow2_ActivationFunction)
     {
         return("pow2");
     }
     return("");
 }
Example #6
0
 public void LoadStructure(Stream s)
 {
     numberOfNeurons    = Utils.IntFromStream(s);
     recurring          = s.ReadByte() == 1;
     activationFunction = Utils.GetActivationFunctionFromID(Utils.IntFromStream(s));
 }