Example #1
0
        public ModelTraining StartTraining()
        {
            startTime = DateTime.Now.Ticks / 10000;

            // Clear GUI
            labelStatus.Text = "-";

            ff.Name      = cboxModelName.Text;
            ff.MaxEpochs = int.Parse(tboxEpochs.Text);

            labelStatus.Text = "Fetch training data...";
            initBodyList     = app.Dataset.BodyListEnabled();
            labelStatus.Text = "Start training...";
            ff.JobArgument   = jobArgument;

            openJobs    = parallelJobs;
            ff.JobIndex = 0;

            startStopButton1.IsRunning = true;

            ff.StopTraining(paraJobs); // stop potential old jobs.
            paraJobs.Clear();
            Cursor.Current = Cursors.WaitCursor;
            var t = new Thread(() =>
            {
                for (int jIdx = 0; jIdx < openJobs; jIdx++)
                {
                    if (jIdx > 0)
                    {
                        System.Threading.Thread.Sleep(1000 * (jIdx + 2));
                    }
                    ff.JobIndex = jIdx;
                    paraJobs.Add(ff.StartTraining());
                }
            });

            t.Start();
            while (!t.Join(50))
            {
                Application.DoEvents();
            }

            Cursor.Current = Cursors.Default;

            return(this);
        }