Пример #1
0
        public NetworkEvaluator(NeuralNetwork network, float learningRate = 0.0015f, int simultaniousLayers = 16)
        {
            LearningRate        = learningRate;
            _simultaniousLayers = simultaniousLayers;

            foreach (var layer in network.Layers)
            {
                _layers.Add(EvaluatorLayer.CreateFromLayer(layer, simultaniousLayers));
            }
        }
Пример #2
0
        public override JobHandle BackpropigateLayer(EvaluatorLayer currentLayerState, EvaluatorLayer nextLayerState, int count, JobHandle jobHandleToWaitOn)
        {
            var backPropigateLayerJob = new LinearLayerErrorEvaluator()
            {
                NextLayerWeights   = nextLayerState.ModelLayer.Weights,
                NextLayerError     = nextLayerState.SliceError(0, count),
                WeightedActivation = currentLayerState.SliceWeightedInputs(0, count),
                ErrorOutput        = currentLayerState.SliceError(0, count)
            };

            return(backPropigateLayerJob.Schedule(currentLayerState.Error.Dimensions.y, 4, jobHandleToWaitOn));
        }
Пример #3
0
        public override JobHandle EvaluateLayer(EvaluatorLayer lastLayerState, EvaluatorLayer currentLayerState, int count, JobHandle jobHandleToWaitOn)
        {
            var layerEvaluatorJob = new LinearNeuronEvaluator()
            {
                SourceActivation    = lastLayerState.SliceActivations(0, count),
                LayerWeightedInputs = currentLayerState.SliceWeightedInputs(0, count),
                LayerActivation     = currentLayerState.SliceActivations(0, count),

                Weights = Weights,
                Biases  = Biases
            };

            return(layerEvaluatorJob.Schedule(currentLayerState.OutputActivation.Dimensions.y, 4, jobHandleToWaitOn));
        }
Пример #4
0
 public abstract JobHandle BackpropigateLayer(EvaluatorLayer currentLayerState, EvaluatorLayer nextLayerState, int count, JobHandle jobHandleToWaitOn);
Пример #5
0
 public abstract JobHandle EvaluateLayer(EvaluatorLayer lastLayerState, EvaluatorLayer currentLayerState, int count, JobHandle jobHandleToWaitOn);
Пример #6
0
 public override JobHandle BackpropigateLayer(EvaluatorLayer currentLayerState, EvaluatorLayer nextLayerState, int count, JobHandle jobHandleToWaitOn)
 {
     //Never needs to be evaluated ?
     throw new NotImplementedException();
 }