示例#1
0
        private void addMlSettingsBoxContent()
        {
            MachineLearning.Learning.ML_Settings settingsObject = new MachineLearning.Learning.ML_Settings();

            FieldInfo[] fields = settingsObject.GetType().GetFields();

            for (int i = 0; i < fields.Length; i++)
            {
                Label l = new Label();
                mlSettingsPanel.Controls.Add(l);

                l.AutoSize = true;
                l.Location = new System.Drawing.Point(5, 5 + ML_FIELDS_OFFSET * i);
                l.Name = fields[i].Name + "_label";
                l.Size = new System.Drawing.Size(35, 15);
                l.TabIndex = i * 2;
                l.Text = fields[i].Name;

                TextBox t = new TextBox();
                mlSettingsPanel.Controls.Add(t);

                t.Location = new System.Drawing.Point(150, 5 + ML_FIELDS_OFFSET * i);
                t.Name = fields[i].Name + "_textBox";
                t.Size = new System.Drawing.Size(150, 20);
                t.TabIndex = i * 2 + 1;
                t.Text = fields[i].GetValue(settingsObject).ToString();
            }
        }
示例#2
0
        private void addMlSettingsBoxContent()
        {
            MachineLearning.Learning.ML_Settings settingsObject = new MachineLearning.Learning.ML_Settings();

            FieldInfo[] fields = settingsObject.GetType().GetFields();

            for (int i = 0; i < fields.Length; i++)
            {
                Label l = new Label();
                mlSettingsPanel.Controls.Add(l);

                l.AutoSize = true;
                l.Location = new System.Drawing.Point(5, 5 + ML_FIELDS_OFFSET * i);
                l.Name     = fields[i].Name + "_label";
                l.Size     = new System.Drawing.Size(35, 15);
                l.TabIndex = i * 2;
                l.Text     = fields[i].Name;

                TextBox t = new TextBox();
                mlSettingsPanel.Controls.Add(t);

                t.Location = new System.Drawing.Point(150, 5 + ML_FIELDS_OFFSET * i);
                t.Name     = fields[i].Name + "_textBox";
                t.Size     = new System.Drawing.Size(150, 20);
                t.TabIndex = i * 2 + 1;
                t.Text     = fields[i].GetValue(settingsObject).ToString();
            }
        }
        private static void defineParameterSpace(string[] parameters, Dictionary <string, List <bool> > boolSettings,
                                                 Dictionary <string, List <int> > intSettings, Dictionary <string, List <double> > doubleSettings,
                                                 Dictionary <string, List <LossFunction> > lossFuncInterval, Dictionary <string, List <ScoreMeasure> > scoreMeasureInterval,
                                                 Dictionary <string, List <TimeSpan> > learnTimeLimitInterval)
        {
            foreach (string parameter in parameters)
            {
                //dummy
                int      y;
                double   x;
                TimeSpan z;

                //setting name and values that should be within the parameter space
                Tuple <string, string[]> nameAndValues = extractSettings(parameter);

                ML_Settings referenceSetting   = new ML_Settings();
                System.Reflection.FieldInfo fi = referenceSetting.GetType().GetField(nameAndValues.Item1);

                if (fi == null)
                {
                    GlobalState.logInfo.logLine("Invalid variable name: " + nameAndValues.Item1 +
                                                ". This setting will be ignored.");
                }
                else if (isBool(nameAndValues.Item2[0]) && fi.FieldType.FullName.Equals("System.Boolean"))
                {
                    List <bool> toAdd = new List <bool>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(toBool(value));
                    }
                    boolSettings.Add(nameAndValues.Item1, toAdd);
                }
                else if (int.TryParse(nameAndValues.Item2[0], out y) &&
                         (fi.FieldType.FullName.Equals("System.Int32") || fi.FieldType.FullName.Equals("System.Int64")))
                {
                    List <int> toAdd = new List <int>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(int.Parse(value));
                    }
                    intSettings.Add(nameAndValues.Item1, toAdd);
                }
                else if (Double.TryParse(nameAndValues.Item2[0], out x) && fi.FieldType.FullName.Equals("System.Double"))
                {
                    List <double> toAdd = new List <double>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(Double.Parse(value, CultureInfo.InvariantCulture));
                    }
                    doubleSettings.Add(nameAndValues.Item1, toAdd);
                }
                else if (isLossFunction(nameAndValues.Item2[0]) &&
                         fi.FieldType.FullName.Equals("MachineLearning.Learning.ML_Settings+LossFunction"))
                {
                    List <LossFunction> toAdd = new List <LossFunction>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(toLossFunction(value));
                    }
                    lossFuncInterval[nameAndValues.Item1] = toAdd;
                }
                else if (isScoreMeasure(nameAndValues.Item2[0]) &&
                         fi.FieldType.FullName.Equals("MachineLearning.Learning.ML_Settings+ScoreMeasure"))
                {
                    List <ScoreMeasure> toAdd = new List <ScoreMeasure>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(toScoreMeasure(value));
                    }
                    scoreMeasureInterval[nameAndValues.Item1] = toAdd;
                }
                else if (TimeSpan.TryParse(nameAndValues.Item2[0], out z) &&
                         fi.FieldType.FullName.Equals("System.TimeSpan"))
                {
                    List <TimeSpan> toAdd = new List <TimeSpan>();
                    foreach (string value in nameAndValues.Item2)
                    {
                        toAdd.Add(TimeSpan.Parse(value));
                    }
                    learnTimeLimitInterval[nameAndValues.Item1] = toAdd;
                }
                else
                {
                    GlobalState.logInfo.logLine("Invalid setting-value pair: " + nameAndValues.Item1 + " "
                                                + string.Join(",", nameAndValues.Item2) + ". This setting will be ignored.");
                }
            }
        }