Пример #1
0
        unsafe internal void Reset(float[] valueBuffer, NeuralNetworkResetTarget target)
        {
            if ((target & NeuralNetworkResetTarget.Outputs) != 0)
            {
                ValueBuffer.Zero(valueBuffer, OutputBuffer);
            }
            else if ((target & NeuralNetworkResetTarget.Ps) != 0)
            {
                if (Method == ForwardComputationMethod.RTLR)
                {
                    foreach (var range in PBiasBuffers)
                    {
                        ValueBuffer.Zero(valueBuffer, range);
                    }

                    foreach (var lvl1 in PWeightBuffers)
                    {
                        foreach (var lvl2 in lvl1)
                        {
                            foreach (var range in lvl2)
                            {
                                ValueBuffer.Zero(valueBuffer, range);
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
        internal void Reset(NeuralComputationContext context, NeuralNetworkResetTarget target)
        {
            if ((target & NeuralNetworkResetTarget.Errors) == NeuralNetworkResetTarget.Errors)
            {
                ForwardCompute.BufferOps.Zero(context, ErrorBuffer.Value);
            }

            if ((target & NeuralNetworkResetTarget.Gradients) == NeuralNetworkResetTarget.Gradients)
            {
                foreach (var gradBuff in GradientBuffers)
                {
                    ForwardCompute.BufferOps.Zero(context, gradBuff);
                }
            }

            if ((target & NeuralNetworkResetTarget.GradientSums) == NeuralNetworkResetTarget.GradientSums)
            {
                foreach (var gradSumBuff in GradientSumBuffers)
                {
                    ForwardCompute.BufferOps.Zero(context, gradSumBuff);
                }
            }
        }
Пример #3
0
        unsafe internal void Reset(float[] valueBuffer, NeuralNetworkResetTarget target)
        {
            if ((target & NeuralNetworkResetTarget.Errors) == NeuralNetworkResetTarget.Errors)
            {
                ValueBuffer.Zero(valueBuffer, ErrorBuffer.Value);
            }

            if ((target & NeuralNetworkResetTarget.Gradients) == NeuralNetworkResetTarget.Gradients)
            {
                foreach (var gradBuff in GradientBuffers)
                {
                    ValueBuffer.Zero(valueBuffer, gradBuff);
                }
            }

            if ((target & NeuralNetworkResetTarget.GradientSums) == NeuralNetworkResetTarget.GradientSums)
            {
                foreach (var gradSumBuff in GradientSumBuffers)
                {
                    ValueBuffer.Zero(valueBuffer, gradSumBuff);
                }
            }
        }
Пример #4
0
        internal void Reset(NeuralComputationContext context, NeuralNetworkResetTarget target)
        {
            if ((target & NeuralNetworkResetTarget.Outputs) != 0)
            {
                BufferOps.Zero(context, OutputBuffer);
            }
            else if ((target & NeuralNetworkResetTarget.Ps) != 0)
            {
                if (Method == ForwardComputationMethod.RTLR)
                {
                    foreach (var range in PBiasBuffers)
                    {
                        BufferOps.Zero(context, range);
                    }

                    foreach (var lvl1 in PWeightBuffers)
                    {
                        foreach (var lvl2 in lvl1)
                        {
                            foreach (var range in lvl2)
                            {
                                BufferOps.Zero(context, range);
                            }
                        }
                    }
                }
            }
        } 
Пример #5
0
 protected override unsafe void ResetBackwardValues(NeuralNetworkResetTarget target)
 {
     for (int groupIndex = 0; groupIndex < backwardComputeGroups.Length; groupIndex++)
     {
         var groupCompute = backwardComputeGroups[groupIndex];
         for (int layerIndex = 0; layerIndex < groupCompute.Length; layerIndex++)
         {
             groupCompute[layerIndex].Reset(valueBuffer, target);
         }
     }
 }
Пример #6
0
 protected override unsafe void ResetBackwardValues(NeuralNetworkResetTarget target)
 {
 }
Пример #7
0
 protected override unsafe void ResetBackwardValues(NeuralComputationContext context, NeuralNetworkResetTarget target)
 {
     var valueBuffer = GetValueBuff(context);
     for (int groupIndex = 0; groupIndex < backwardComputeGroups.Length; groupIndex++)
     {
         var compute = backwardComputeGroups[groupIndex];
         for (int layerIndex = 0; layerIndex < compute.Length; layerIndex++)
         {
             compute[layerIndex].Reset(valueBuffer, target);
         }
     }
 }