Exemplo n.º 1
0
        public void ForwardPass(Matrix targetValues)
        {
            foreach (AffineLayer layer in AffineLayers())
            {
                layer.ForwardPass();
            }

            LossLayer.ForwardPass(targetValues);
        }
Exemplo n.º 2
0
        public void BackwardPass(Matrix targetValues)
        {
            LinkedListNode <Layer> curLayer = _layers.Last;
            LossLayer lossLayer             = (LossLayer)curLayer.Value;

            lossLayer.ComputeLossGradients(targetValues);

            while (true)
            {
                curLayer = curLayer.Previous;
                if (curLayer == null)
                {
                    break;
                }

                curLayer.Value.BackwardPass();
            }
        }
Exemplo n.º 3
0
        public Model(int inputsCount, ActivationType inputActivationType, int outputsCount, ActivationType outputActivationType, CostType costType)
        {
            var inputLayer = new AffineLayer(inputsCount, inputActivationType);

            _layers.AddFirst(inputLayer);
            inputLayer.SetListNode(_layers.First);

            var outputLayer = new AffineLayer(outputsCount, outputActivationType);

            _layers.AddLast(outputLayer);
            outputLayer.SetListNode(_layers.Last);

            LossLayer = new LossLayer(costType, outputsCount);
            _layers.AddLast(LossLayer);
            LossLayer.SetListNode(_layers.Last);

            UpdateLayersIds();
        }