private void StartGeneration(List <NeuralNetwork> newGeneration)
 {
     generation++;
     formulas = new GameObject[population];
     for (int i = 0; i < population; i++)
     {
         GameObject newFormula = Instantiate(formula, transform.position, Quaternion.identity);
         if (newGeneration != null)
         {
             Formula f = newFormula.GetComponent <Formula>();
             if (i < population / 10)
             {
                 f.brain = bestNetwork;
             }
             else
             {
                 f.brain = newGeneration[i];
             }
         }
         formulas[i] = newFormula;
     }
     if (newGeneration != null)
     {
         // visualizing best network
         visualizer.DrawNetwork(bestNetwork, 200, 10, Color.cyan, Color.blue, Color.red, new Color(1, 1, 1, 0.3f));
     }
 }
示例#2
0
 void Start()
 {
     // setting learning rate
     nn.learningRate = 0.5f;
     // starting training
     Train();
     // visualizing xor on the graph
     VisualizeXOR();
     // visualizing network structure
     visualizer.DrawNetwork(nn, 400, 5, Color.cyan, Color.red, Color.blue, new Color(1, 1, 1, 0.3f));
 }
 void Draw()
 {
     nn = new NeuralNetwork(inputs, hiddenLayers, hiddenNeurons, outputs);
     nv.DrawNetwork(nn, 500, 3, Color.red, Color.green, Color.cyan, Color.white);
 }