Beispiel #1
0
    void InitOutputPerceptrons(ANNSaveData savedata)
    {
        List <Perceptron> lastHiddenLayerPerceptrons = m_hiddenLayers[m_hiddenLayers.Count - 1].hiddenPerceptrons;

        for (int i = 0; i < nbOutputPerceptrons; i++)
        {
            Perceptron perceptron = new Perceptron(this);

            for (int j = 0; j < nbHiddenPerceptrons; j++)
            {
                Perceptron.Input input = new Perceptron.Input();
                input.inputPerceptron = lastHiddenLayerPerceptrons[j];

                if (savedata != null)
                {
                    input.weight = savedata.hiddenLayerWeights[i].weightList[j];
                }
                else
                {
                    input.weight = Random.Range(-WeightRange, WeightRange);
                }

                perceptron.inputs.Add(input);
            }

            Perceptron.Input biasInput = new Perceptron.Input();
            biasInput.inputPerceptron = bias;

            if (savedata != null)
            {
                List <float> weightList = savedata.hiddenLayerWeights[i].weightList;
                int          lastIndex  = weightList.Count - 1;
                biasInput.weight = weightList[lastIndex];
            }
            else
            {
                biasInput.weight = Random.Range(-WeightRange, WeightRange);
            }

            perceptron.inputs.Add(biasInput);

            m_outputPerceptrons.Add(perceptron);
        }
    }
Beispiel #2
0
    void InitHiddenPerceptrons(ANNSaveData savedata)
    {
        for (int layerIndex = 0; layerIndex < nbHiddenLayers; layerIndex++)
        {
            int nb;
            List <Perceptron> perceptronList;

            HiddenLayer layer;
            layer.hiddenPerceptrons = new List <Perceptron>();

            if (layerIndex == 0)
            {
                nb             = nbInputPerceptrons;
                perceptronList = m_inputPerceptrons;
            }
            else
            {
                nb             = nbHiddenPerceptrons;
                perceptronList = m_hiddenLayers[layerIndex - 1].hiddenPerceptrons;
            }

            for (int i = 0; i < nbHiddenPerceptrons; i++)
            {
                Perceptron perceptron = new Perceptron(this);

                for (int j = 0; j < nb; j++)
                {
                    Perceptron.Input input = new Perceptron.Input();
                    input.inputPerceptron = perceptronList[j];

                    if (savedata != null)
                    {
                        input.weight = savedata.inputLayerWeights[i].weightList[j];
                    }
                    else
                    {
                        input.weight = Random.Range(-WeightRange, WeightRange);
                    }
                    perceptron.inputs.Add(input);
                }

                Perceptron.Input biasInput = new Perceptron.Input();
                biasInput.inputPerceptron = bias;

                if (savedata != null)
                {
                    List <float> weightList = savedata.inputLayerWeights[i].weightList;
                    int          lastIndex  = weightList.Count - 1;
                    biasInput.weight = weightList[lastIndex];
                }
                else
                {
                    biasInput.weight = Random.Range(-WeightRange, WeightRange);
                }

                perceptron.inputs.Add(biasInput);

                layer.hiddenPerceptrons.Add(perceptron);
                m_hiddenLayers.Add(layer);
            }
        }
    }