private void Init(QAgent agent, QOption option) { if (Benchmark) { BenchmarkSave.CurrentTestID = _instance.BenchmarkID; BenchmarkSave.Runs = _instance.BenchmarkRuns; } else if (Mode == QAIMode.Testing && BenchmarkID != null && !BenchmarkID.Equals("")) { BenchmarkSave.ModelPath = _instance.BenchmarkID; } else { BenchmarkSave.CurrentTestID = agent.AI_ID().ID; BenchmarkSave.Runs = 1; } Debug.Log("Running " + BenchmarkSave.ModelPath + " in mode " + Mode); _stopwatch = Stopwatch.StartNew(); if (Tester != null) { Tester.Init(); } DontDestroyOnLoad(gameObject); switch (Mode) { case QAIMode.Imitating: { _imitation = new QImitation(); break; } default: { var qlCNN = new QLearningCNN(PrioritizedSweeping, option); _qlearning = qlCNN; _qlearning.Reset(agent); if (Remake) { _qlearning.RemakeModel(agent.GetState()); } else { _qlearning.LoadModel(); } if (VisualizeNetwork) { _visualizer = _qlearning.CreateVisualizer(); } qlCNN.CNN.ValuesComputed += (data, isTraining) => { if (NetworkValuesUpdated != null) { NetworkValuesUpdated(data, isTraining); } }; break; } } }
public static void InitAgent(QAgent agent, QOption option = null) { option = option ?? new QOption(); if (_instance == null) { _instance = FindObjectOfType <QAIManager>(); _instance.Init(agent, option); } BenchmarkSave.SaveBenchmarks = _instance.Benchmark; _instance._sceneIsOver = false; _instance._testIsOver = false; Agent = agent; if (_instance.Mode != QAIMode.Imitating) { _instance._qlearning.Reset(agent); } }
public ActionResult QuizStart(QuestionCreateForView questionQv) { QOption qOption = new QOption(); qOption = _qOptionBll.GetAll().SingleOrDefault(x => x.QuestionId == questionQv.Id && x.Id == questionQv.QuestionId); if (questionQv != null) { if (qOption.checkbox == true) { var dd = Convert.ToDouble(TempData["marks"].ToString()); TempData["marks"] = Convert.ToDouble(TempData["marks"].ToString()) + questionQv.Marks; } } TempData.Keep(); double d = Convert.ToDouble(TempData["marks"].ToString()); return(RedirectToAction("QuizStart")); }
// Use this for initialization void Start() { GetComponentInChildren <SpriteRenderer>().shadowCastingMode = ShadowCastingMode.On; _onTrack = true; _distanceTravelled = StartPosition; Track.GetPointAtDistance(_distanceTravelled); _grid = new QGrid(16, transform, new GridSettings { Offset = Vector3.up * 5.2f }); _vector = Vector <float> .Build.Dense(10, 0); _velocityBin = new Bin(0.01f, 0.25f, 0.5f, 75f); _forceBin = new Bin(0.01f, 0.25f, 0.5f, 75f); var options = new QOption { Discretize = false, MaxPoolSize = 2000, BatchSize = 2000, EpsilonStart = 0.7f, Discount = 0.8f, TrainingInterval = 50, NetworkArgs = new [] { new CNNArgs { FilterSize = 4, FilterCount = 1, PoolLayerSize = 2, Stride = 2 } } }; options.Discretize = false; // if(AiControlled || QAIManager.CurrentMode == QAIMode.Imitating) { QAIManager.InitAgent(this, options); if (QAIManager.CurrentMode == QAIMode.Learning) { Time.timeScale = 2.0f; } // } StartCoroutine(Spas()); }