public void backwardHidden(neuralNet nn) { int index = nn.layers.IndexOf(this); for (int i = 0; i < neurons.Length; i++) { neurons[i].backwardHidden(this, nn.layers[index + 1]); } //Console.WriteLine(nn.layers[index + 1].layerName); }
//a.compareTo(b) -> a-b public int compareTo(neuralNet other) { if (this.getReward() > other.getReward()) { return(1); } if (this.getReward() < other.getReward()) { return(-1); } return(0); }
//best weigth & bias need to be issued from a neuralnet with SAME layer[] var public void instantiate(int[] layers, int type /*1=random, 2=10%, 3=1%, 4=best*/, float[][][] bestWeight, float[][] bestBias) { brain = new neuralNet(layers); outputs = new float[layers[layers.Length - 1]]; //speed = 12; //rotateSpeed = 25; score = 0; Renderer rend = GetComponent <Renderer>(); rend.material.shader = Shader.Find("Specular"); if (type == 1) { GetComponent <Renderer>().material = red; brain.initiateRandom(biasRange, weigthRange); } else if (type == 2) { GetComponent <Renderer>().material = yellow; brain.initiate(bestBias, bestWeight); brain.mutate(10.0f); } else if (type == 3) { GetComponent <Renderer>().material = cyan; brain.initiate(bestBias, bestWeight); brain.mutate(1.0f); } else if (type == 4) { GetComponent <Renderer>().material = blue; brain.initiate(bestBias, bestWeight); brain.mutate(0.1f); } else if (type == 5) { GetComponent <Renderer>().material = green; brain.initiate(bestBias, bestWeight); } else { Destroy(gameObject); } //bias = getBias(); //weight = getWeights(); }