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); } } } } } }
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); } } }
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); } } }
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); } } } } } }
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); } } }
protected override unsafe void ResetBackwardValues(NeuralNetworkResetTarget target) { }
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); } } }