public unsafe void Eval(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
        {
            float *x = ((float *)input.DataPointer);
            float *y = ((float *)output.DataPointer);

            var sumExp = 0.0f;
            int i;

            for (i = 0; i < neurons; i++)
            {
                y[i]    = (float)Math.Exp(x[i]);
                sumExp += y[i];
            }

            for (i = 0; i < neurons; i++)
            {
                y[i] /= sumExp;
            }
        }
 public void EvalDerivate(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
 {
     throw new NotImplementedException();
 }
        public unsafe void EvalDerivate(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
        {
            float *x = (float *)input.DataPointer;
            float *y = (float *)output.DataPointer;

            Parallel.For(0, neurons, neuron =>
            {
                y[neuron] = x[neuron] * (1 - x[neuron]);
            });
        }
        public unsafe void Eval(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
        {
            float *x = (float *)input.DataPointer;
            float *y = (float *)output.DataPointer;

            Parallel.For(0, neurons, i =>
            {
                y[i] = 1.0f / (1 + (float)Math.Exp(-x[i]));
            });
        }
 public unsafe void EvalDerivate(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
 {
     for (int neuron = 0; neuron < neurons; neuron++)
     {
         float x = ((float *)input.DataPointer)[neuron];
         ((float *)output.DataPointer)[neuron] = x * (1 - x);
     }
 }
        public unsafe void Eval(ComputeBuffer input, ComputeBuffer output, int neurons, int layer, FFNNet net)
        {
            float *x = (float *)input.DataPointer;
            float *y = (float *)output.DataPointer;

            for (int i = 0; i < neurons; i++)
            {
                y[i] = 1.0f / (1 + (float)Math.Exp(-x[i]));
            }
        }
示例#7
0
 public FFNNBackPropCPUTrainer(IFFNNetEvaluator evaluator)
 {
     this.net = evaluator.NeuralNet;
 }