コード例 #1
0
 public TaskInfo(Matrix <T> m1, Matrix <T> m2, Trials trials, Matrix <T> result)
 {
     M1     = m1;
     M2     = m2;
     Result = result;
     Trials = trials;
 }
コード例 #2
0
 public override void Save(Session session)
 {
     base.Save(session);
     ((SpellerParadigm)session.Paradigm).Config.Test.StimulationPatterns?
     .JsonSerializeToFile(session.GetDataFileName(FrequenciesFile), JsonUtils.PrettyFormat, Encoding.UTF8);
     Trials?.JsonSerializeToFile(session.GetDataFileName(TrialsFile), JsonUtils.PrettyFormat, Encoding.UTF8);
 }
コード例 #3
0
ファイル: Session.cs プロジェクト: rubtuc/unity-vr-fire
 /// <summary>
 /// Get currently active trial. When not in a trial, gets previous trial.
 /// </summary>
 /// <returns>Currently active trial.</returns>
 public Trial GetTrial()
 {
     if (currentTrialNum == 0)
     {
         throw new NoSuchTrialException("There is no trial zero. If you are the start of the experiment please use nextTrial to get the first trial");
     }
     return(Trials.ToList()[currentTrialNum - 1]);
 }
コード例 #4
0
 /// <summary>
 /// Get currently active trial. When not in a trial, gets previous trial.
 /// </summary>
 /// <returns>Currently active trial.</returns>
 public Trial GetTrial()
 {
     if (currentTrialNum == 0)
     {
         throw new NoSuchTrialException("There is no trial zero. Did you try to perform operations on the current trial before the first one started? If you are the start of the experiment please use NextTrial to get the first trial. ");
     }
     return(Trials.ToList()[currentTrialNum - 1]);
 }
コード例 #5
0
        /// <summary>
        /// Gets information about learning neural network process
        /// </summary>
        /// <returns>List of string array</returns>
        public List <String[]> GetInformation()
        {
            List <String[]> list = new List <String[]>();

            list.Add(new String[] { "Liczba wejść", Info.ni.ToString() });
            list.Add(new String[] { "Liczba wyjść", Info.no.ToString() });
            list.Add(new String[] { "Liczba neuronów", Info.nn.ToString() });
            list.Add(new String[] { "Liczba wzorców", Info.np.ToString() });
            list.Add(new String[] { "Liczba wag", Info.nw.ToString() });
            list.Add(new String[] { "MU - wielkość o jaką mogą się zmieniać wagi", Settings.MU.ToString() });
            list.Add(new String[] { "Dolna granica MU", Settings.MUL.ToString() });
            list.Add(new String[] { "Górna granica MU", Settings.MUH.ToString() });
            list.Add(new String[] { "Skala", Settings.Scale.ToString() });
            list.Add(new String[] { "Maksymalna liczba iteracji", Settings.MaxIterations.ToString() });
            list.Add(new String[] { "Maksymalny błąd uczenia", Settings.MaxError.ToString() });
            String tmp = "";

            foreach (var t in Topo)
            {
                tmp += t.ToString() + ", ";
            }
            tmp = tmp.TrimEnd(new char[] { ' ', ',' });
            list.Add(new String[] { "Topografia sieci", tmp });

            tmp = "";
            foreach (var t in TopoIndex)
            {
                tmp += t.ToString() + ", ";
            }
            tmp = tmp.TrimEnd(new char[] { ' ', ',' });
            list.Add(new String[] { "Indeksy topografii sieci", tmp });

            tmp = "";
            FunctionChoice fc = (FunctionChoice)ActivationFunction[0];

            switch (fc)
            {
            case FunctionChoice.BipolarElliotNeuron: tmp = "dwubiegunowa Elliota"; break;

            case FunctionChoice.BipolarNeuron: tmp = "dwubiegunowa"; break;

            case FunctionChoice.LinearNeuron: tmp = "liniowa"; break;

            case FunctionChoice.UnipolarElliotNeuron: tmp = "jednobiegunowa Elliota"; break;

            case FunctionChoice.UnipolarNeuron: tmp = "jednobiegunowa"; break;

            default: tmp = ""; break;
            }
            list.Add(new String[] { "Funkcja aktywacji", tmp });
            list.Add(new String[] { "Liczba prób uczenia/testowania", Trials.ToString() });
            list.Add(new String[] { "Średnia błędów uczenia (RMSE)", FinalRMSE.ToString() });
            list.Add(new String[] { "Średnia błędów testowania (RMSE)", TestRMSE.ToString() });
            list.Add(new String[] { "Średni czas uczenia", AverageLearnTime });
            list.Add(new String[] { "Średni czas testowania", AverageTestTime });
            return(list);
        }
コード例 #6
0
 /// <summary>
 /// Get previous Trial.
 /// </summary>
 /// <returns></returns>
 Trial GetPrevTrial()
 {
     try
     {
         // non zero indexed
         return(Trials.ToList()[currentTrialNum - 2]);
     }
     catch (ArgumentOutOfRangeException)
     {
         throw new NoSuchTrialException("There is no previous trial. Probably, currently at the start of session.");
     }
 }
コード例 #7
0
 /// <summary>
 /// Get next Trial
 /// </summary>
 /// <returns></returns>
 Trial GetNextTrial()
 {
     // non zero indexed
     try
     {
         return(Trials.ToList()[currentTrialNum]);
     }
     catch (ArgumentOutOfRangeException)
     {
         throw new NoSuchTrialException("There is no next trial. Reached the end of trial list. If you are at the start of the session, perhaps you tried to start the next trial before generating your trials? If you are at the end, you can use BeginNextTrialSafe to do nothing if there is no next trial.");
     }
 }
コード例 #8
0
ファイル: Session.cs プロジェクト: rubtuc/unity-vr-fire
 /// <summary>
 /// Get next Trial
 /// </summary>
 /// <returns></returns>
 Trial GetNextTrial()
 {
     // non zero indexed
     try
     {
         return(Trials.ToList()[currentTrialNum]);
     }
     catch (ArgumentOutOfRangeException)
     {
         throw new NoSuchTrialException("There is no next trial. Reached the end of trial list.");
     }
 }
コード例 #9
0
 private void UpdateTrial(int n)
 {
     if (n <0 | n> MainForm.allTrials.Count - 1)
     {
         return;
     }
     trialListIdx          = n;
     trial                 = MainForm.allTrials.ElementAt(trialListIdx);
     n_label.Text          = (trialListIdx + 1).ToString() + "/" + MainForm.allTrials.Count.ToString();
     congruence_label.Text = "Congruence: " + trial.congruence.ToString();
     answer_label.Text     = "Response  : " + trial.response.ToString();
     this.Refresh();
 }
コード例 #10
0
 protected void UpdateStatusValues()
 {
     if (StatusValues != null)
     {
         StatusValues[0] = Trials.ToString();
         StatusValues[1] = BoundMass_MeV.ToString("G12");
         StatusValues[2] = Param.SoftScale_MeV.ToString("G12");
         StatusValues[3] = Param.Energy_MeV.ToString("G12");
         StatusValues[4] = Param.GammaDamp_MeV.ToString("G12");
         StatusValues[5] = ComplexMath.Abs(WaveFunction_fm[0])
                           .ToString("G4");
         StatusValues[6] = NumberExtrema.ToString();
     }
 }
コード例 #11
0
ファイル: Session.cs プロジェクト: rubtuc/unity-vr-fire
        void SaveResults()
        {
            List <ResultsDictionary> results = Trials.Select(t => t.result).ToList();
            string        fileName           = "trial_results.csv";
            WriteFileInfo fileInfo           = new WriteFileInfo(
                WriteFileType.Trials,
                BasePath,
                experimentName,
                ppid,
                FolderName,
                fileName
                );

            fileIOManager.ManageInWorker(() => fileIOManager.WriteTrials(results, fileInfo));
        }
コード例 #12
0
    void Update()
    {
        rewardText.text = "Reward: " + Reward.Get();

        if (task.Success())
        {
            task.Reset();

            if (task.Done(Trials.GetSuccess(), Trials.GetFailure()))
            {
                task.Finish();

                PlayerPrefs.SetInt("Success Count", 0);
                PlayerPrefs.SetInt("Failure Count", 0);
                EditorSceneManager.LoadScene(Scenes.Next());
                return;
            }

            Trials.AddSuccess();

            PlayerPrefs.SetInt("Success Count", Trials.GetSuccess());
            PlayerPrefs.SetInt("Failure Count", Trials.GetFailure());
            EditorSceneManager.LoadScene(EditorSceneManager.GetActiveScene().name);
            return;
        }

        if (task.Failure())
        {
            if (Automator.Enabled())
            {
                Debug.LogError("You have enabled autorun but task has failed: check your automation sequence for task '" + PlayerPrefs.GetString("Task Name") + "'");
            }

            task.Reset();

            Trials.AddFailure();

            PlayerPrefs.SetInt("Success Count", Trials.GetSuccess());
            PlayerPrefs.SetInt("Failure Count", Trials.GetFailure());
            EditorSceneManager.LoadScene(EditorSceneManager.GetActiveScene().name);
            return;
        }

        elapsed += 1;

        PlayerPrefs.SetInt("Elapsed Time", elapsed);
    }
コード例 #13
0
 // Running trials thread, stops with ESC key
 private void TrialsRunningThread()
 {
     while (Thread.CurrentThread.IsAlive)
     {
         currentTrial = new Trials();
         GeneratePolygon();
         trialState = 1;
         Thread.Sleep(1000);
         Invoke(new Action(() =>
         {
             this.Refresh();
         }));
         stopwatch.Restart();
         while (trialState == 1)
         {
             _recognizer.Recognize();
         }
     }
 }
コード例 #14
0
        void SaveResults()
        {
            // generate list of all headers possible
            // hashset keeps unique set of keys
            HashSet <string> resultsHeaders = new HashSet <string>();

            foreach (Trial t in Trials)
            {
                if (t.result != null)
                {
                    foreach (string key in t.result.Keys)
                    {
                        resultsHeaders.Add(key);
                    }
                }
            }

            UXFDataTable table = new UXFDataTable(Trials.Count(), resultsHeaders.ToArray());

            foreach (Trial t in Trials)
            {
                if (t.result != null)
                {
                    UXFDataRow row = new UXFDataRow();
                    foreach (string h in resultsHeaders)
                    {
                        if (t.result.ContainsKey(h) && t.result[h] != null)
                        {
                            row.Add((h, t.result[h]));
                        }
                        else
                        {
                            row.Add((h, string.Empty));
                        }
                    }
                    table.AddCompleteRow(row);
                }
            }

            SaveDataTable(table, "trial_results", dataType: UXFDataType.TrialResults);
        }
コード例 #15
0
    void Start()
    {
        task = GetComponent <Task>();

        if (Automator.Enabled())
        {
            Automator.Setup(task.AutomationSequence());
        }

        Reward.Set(0.0F);

        if (!PlayerPrefs.HasKey("Task Name"))
        {
            PlayerPrefs.SetString("Task Name", task.Name());
            Trials.Reset();
        }

        if (PlayerPrefs.GetString("Task Name") != task.Name())
        {
            PlayerPrefs.SetString("Task Name", task.Name());
            Trials.Reset();
        }

        PlayerPrefs.SetInt("Elapsed Time", elapsed);

        int successCount = Trials.GetSuccess();
        int failureCount = Trials.GetFailure();

        task.Initialize(successCount, failureCount);

        if (Automator.Enabled())
        {
            Automator.Setup(task.AutomationSequence());
        }

        taskText.text    = PlayerPrefs.GetString("Task Name");
        successText.text = "Success: " + successCount;
        failureText.text = "Failure: " + failureCount;
        rewardText.text  = "Reward: 0";
    }
コード例 #16
0
        private static IEnumerable <Trials> getTrials(int rows, int trialSize)
        {
            var trials        = new List <Trials>();
            var rowsPerThread = rows / trialSize;
            int start         = 0;

            for (var i = 0; i < trialSize; i++)
            {
                trials.Add(new Trials(start, start + rowsPerThread));
                start += rowsPerThread;
            }

            if (rows % trialSize == 0)
            {
                return(trials);
            }

            var lastTrial = trials[(int)trialSize - 1];

            trials[(int)trialSize - 1] = new Trials(lastTrial.RowStart, rows);

            return(trials);
        }
コード例 #17
0
 /// <summary>
 /// Get trial by trial number (non zero indexed)
 /// </summary>
 /// <returns></returns>
 public Trial GetTrial(int trialNumber)
 {
     return(Trials.ToList()[trialNumber - 1]);
 }
コード例 #18
0
    // public methods

    public bool Load(string aFileNamePrefix = "")
    {
        _trials = new Trials <PlayingLadyTrial>(aFileNamePrefix + TRIALS_FILENAME, BLOCK_SIZE, VARIABLE_COUNT);
        return(_trials.IsValid);
    }
コード例 #19
0
 public void OpenTrial(string name)
 {
     Trials.Add(InstantiateTrial(name));
 }
コード例 #20
0
ファイル: Session.cs プロジェクト: dbaltas/kinoscope
 public virtual void AddTrial(Trial trial)
 {
     trial.Session = this;
     Trials.Add(trial);
 }