Exemple #1
0
        public ActionResult ViewForm()
        {
            Models.LearningFormModel form = TempData["form"] as Models.LearningFormModel;
            var           dirPath         = Path.Combine(Server.MapPath("~/App_Data/"), form.folderName);
            List <string> files           = Directory.GetFiles(dirPath).ToList();

            string filePath = Path.Combine(dirPath, files.Find(s => s.Contains(form.fileName)));

            ErrorBackpropagation backprop = new ErrorBackpropagation(filePath);

            double[][] learningTable;
            double[][] testingTable;
            Network    network;

            backprop.testNetworkFromFile(out learningTable, out testingTable, out network);

            string layers = "";

            foreach (Neuron[] layer in network.layers)
            {
                layers = string.Concat(layers, layer.Length + " ");
            }

            ViewBag.LearningTable     = learningTable;
            ViewBag.TestingTable      = testingTable;
            ViewBag.Layers            = layers;
            ViewBag.LearningParameter = network.learningParameter;
            ViewBag.ErrorTolerance    = network.outputTolerance;

            return(View(form));
        }
Exemple #2
0
 public ActionResult Index(Models.LearningFormModel form)
 {
     if (form != null)
     {
         TempData["form"] = form;
         return(RedirectToAction("ViewForm"));
     }
     return(View());
 }
        public ActionResult ViewForm()
        {
            Models.LearningFormModel form = TempData["form"] as Models.LearningFormModel;
            var           dirPath         = Path.Combine(Server.MapPath("~/App_Data/"), form.folderName);
            List <string> files           = Directory.GetFiles(dirPath).ToList();

            string filePath = Path.Combine(dirPath, files.Find(s => s.Contains(form.fileName)));

            ErrorBackpropagation backprop = new ErrorBackpropagation(form.layers, filePath, form.learningParameter, form.errorTolerance, form.successRate, dirPath);

            double[]   learningRate;
            double[]   errorRate;
            double[][] learningTable;
            double[][] testingTable;

            backprop.execute(out learningRate, out errorRate, out learningTable, out testingTable);
            if (backprop.outputs == 2)
            {
                string.Concat(form.layers, " 1");
            }
            else
            {
                string.Concat(form.layers, " 2");
            }

            if (learningRate.Length < 100)
            {
                ViewBag.LearningRate = learningRate.Select(x => x.ToString()).ToArray();
                ViewBag.ErrorRate    = errorRate.Select(x => x.ToString()).ToArray();
                ViewBag.XAxisData    = Enumerable.Range(1, errorRate.Length).ToArray();
            }
            else
            {
                Array.Copy(learningRate.Select(x => x.ToString()).ToArray(), learningRate.Length - 101, ViewBag.LearningRate, 0, 100);
                Array.Copy(errorRate.Select(x => x.ToString()).ToArray(), errorRate.Length - 101, ViewBag.ErrorRate, 0, 100);
                ViewBag.XAxisData = Enumerable.Range(1, 100).ToArray();
            }

            string       chartFileName = "chart.txt";
            string       chartFilePath = Path.Combine(Server.MapPath("~/App_Data/"), chartFileName);
            FileStream   stream        = new FileStream(chartFilePath, FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter writer        = new StreamWriter(stream);

            for (int i = 0; i < ViewBag.XAxisData.Length; i++)
            {
                writer.Write(ViewBag.XAxisData[i] + " ");
            }
            writer.WriteLine();
            for (int i = 0; i < ViewBag.ErrorRate.Length; i++)
            {
                writer.Write(ViewBag.ErrorRate[i] + " ");
            }
            writer.WriteLine();
            for (int i = 0; i < ViewBag.LearningRate.Length; i++)
            {
                writer.Write(ViewBag.LearningRate[i] + " ");
            }
            writer.Close();
            stream.Close();

            ViewBag.LearningTable = learningTable;
            ViewBag.TestingTable  = testingTable;

            return(View(form));
        }