public void ResetSpeedTest() { int iter = 1000; mlpMN = new MultiLayerMathsNet(seed, null, shapes, 1, initialValueWeights); mlp = new MultiLayer(shapes, seed, 1, null); var watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < iter; i++) { mlpMN.Reset(true); } watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; Debug.Log("Reset Time MathNet: " + elapsedMs); watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < iter; i++) { mlp.Reset(1.0f, true); } watch.Stop(); elapsedMs = watch.ElapsedMilliseconds; Debug.Log("Reset Time Array: " + elapsedMs); }
void Awake() { signalControl = new ControlSignal(); path = "Save/DroneSession/" + "Task-" + task + "/Seed-" + fromSeed + "/"; rndGenerator = new SystemRandomSource(fromSeed); taskObject = (DroneTask)Activator.CreateInstance(Type.GetType("Lexmou.MachineLearning.Drone" + task), rndGenerator, task); mlp = new MultiLayerMathsNet(fromSeed, null, taskObject.shapes, 1, 0); float[] floatArr = new float[taskObject.individualSize]; //float[] floatArr = new float[] {0,-0.33f,0,0,-0.33f,0,0,0,0,0,0.5f,0,0,-1,0,0,-1,0,0,0.5f,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0.5f}; Genetic.LoadBest(path, fromGeneration, floatArr); BuildCustomWeights(mlp.weights, taskObject.shapes, Vector <float> .Build.DenseOfArray(floatArr)); //Debug.Log(mlp.weights[0]); /*if (stabilizationGeneration != 0) * { * Debug.Log("Gene Move"); * gene = new Genetic(stabilizationSeed, null, 100, 40, 1.0f, 0.1f, 0.1f, 0.1f, 0.1f, "Save/DroneSession/Task-stabilization/", false); * } * if (moveGeneration != 0) * { * Debug.Log("Gene Move"); * gene = new Genetic(moveSeed, null, 100, 52, 1.0f, 0.1f, 0.1f, 0.1f, 0.1f, "Save/DroneSession/Task-move/", false); * } * deltaDistribution = new ContinuousUniform(-2, 2); * tmpBuildCustomWeights = new List<Matrix<float>>();*/ Restart(); }
public override void Reset() { for (int i = 0; i < populationSize; i++) { dronePopulation[i] = MonoBehaviour.Instantiate((GameObject)Resources.Load("DroneGene"), taskObject.GetInitialposition(i), Quaternion.identity) as GameObject; droneRigid[i] = dronePopulation[i].GetComponentInChildren <Rigidbody>(); taskObject.GetTargetPosition(i, targetPosition); //Debug.Log(targetPosition[i].ToString()); //targetPosition[i] = if (!taskObject.ResetOrientation(droneRigid[i], gene.bestScore, gene.median, i, populationSize)) { OnDestroy(); Application.Quit(); Time.timeScale = 0f; } if ((gene.generation == 1) || (gene.generation == loadGeneration)) { mlpPopulation[i] = new MultiLayerMathsNet(-1, rndGenerator, taskObject.shapes, 1, initialValueWeights); } BuildCustomWeights(mlpPopulation[i].weights, taskObject.shapes, gene.GetIndividual(i)); } externalEvaluations.Clear(); }
public void SetUp() { mlpMN = new MultiLayerMathsNet(seed, null, shapes, 1, initialValueWeights); mlp = new MultiLayer(shapes, seed, 1, null); }