public Hyperparameters Copy(Hyperparameters individ, string source, string destination) { Hyperparameters H = individ.Clone(); var algorithmBranches = H.getNodesByparentID(H.getNodeByName("committee")[0].ID); List <Hyperparameters> hs = new List <Hyperparameters>(); for (int j = 0; j < algorithmBranches.Count; j++) { var h = new Hyperparameters(H.toJSON(algorithmBranches[j].ID), form1); var new_save_folder = destination + "\\" + h.getValueByName("model_name") + "\\"; //новые пути прописываются в h.json автоматически, если передать объект Hyperparameters по ссылке, а не по значению Algorithm.CopyFiles(h, h.getValueByName("save_folder"), new_save_folder); hs.Add(h); } //удаление старых записей for (int i = 0; i < algorithmBranches.Count; i++) { H.deleteBranch(algorithmBranches[i].ID); } //приращение новых записей к узлу "committee" for (int i = 0; i < algorithmBranches.Count; i++) { H.addBranch(hs[i], hs[i].nodes[0].name(), H.getNodeByName("committee")[0].ID); } H.setValueByName("report_path", destination); H = H.Clone(); File.WriteAllText(destination + "\\h.json", H.toJSON(0), System.Text.Encoding.Default); return(H); }
private void newLog() { logPath = h.getValueByName("log_path") + DateTime.Now.ToString().Replace(':', '-') + '-' + DateTime.Now.Millisecond.ToString() + ".txt"; string[] logs; try { logs = System.IO.Directory.GetFiles(h.getValueByName("log_path")); } catch (System.IO.DirectoryNotFoundException e) { System.IO.Directory.CreateDirectory(h.getValueByName("log_path")); logs = new string[0]; } if (logs.Length > maxlogFilesCount) { System.IO.FileInfo[] logFilesInfo = new FileInfo[logs.Length]; for (int i = 0; i < logs.Length; i++) { logFilesInfo[i] = new FileInfo(logs[i]); } for (int i = 0; i < logs.Length; i++) { var youngest = logFilesInfo[i]; int youngestInd = i; for (int j = i; j < logs.Length; j++) { if (youngest.CreationTime < logFilesInfo[j].CreationTime) { youngest = logFilesInfo[j]; youngestInd = j; } } var temp = logFilesInfo[i]; logFilesInfo[i] = logFilesInfo[youngestInd]; logFilesInfo[youngestInd] = temp; } for (int i = maxlogFilesCount; i < logs.Length; i++) { logFilesInfo[i].Delete(); } } }
public void train() { trainingResponse = ""; h.setValueByName("state", "обучение.."); if (h.getValueByName("input_file") == null) { log("файл датасета не задан"); } File.WriteAllText(h.getValueByName("json_file_path"), h.toJSON(0), System.Text.Encoding.Default); args = "--json_file_path " + '"' + h.getValueByName("json_file_path") + '"'; trainingResponse = Task.Run(() => form1.I.executePythonScript(getValueByName("train_script_path"), args)).Result; try { trainingResponse = trainingResponse.Substring(trainingResponse.IndexOf('{')); Hyperparameters responseH = new Hyperparameters(trainingResponse, form1); // var avg = responseH.getValueByName("AVG"); // if (avg != null) // h.setValueByName("AVG", avg); h.setValueByName("state", "обучение завершено"); log(responseH.getValueByName("response")); string[] predictionsCSV = null; //попытка прочитать данные из файла, полученного из скрипта try { predictionsCSV = File.ReadAllLines(h.getValueByName("predictions_file_path")); } catch { } //если данные имеются, то определить показатели точности прогнозирования if (predictionsCSV != null) { try { getAccAndStdDev(predictionsCSV); } catch { log("Не удалось прочитать файл с тестовым прогнозом", Color.Red); h.setValueByName("state", "Не удалось прочитать файл с тестовым прогнозом"); } } else { log("Не удалось прочитать файл с тестовым прогнозом", Color.Red); h.setValueByName("state", "Не удалось прочитать файл с тестовым прогнозом"); } } catch { log("Не удалось спарсить RESPONSE"); h.setValueByName("AVG", "-1"); h.setValueByName("accuracy", "0"); h.setValueByName("stdDev", "0"); h.setValueByName("state", "ошибка при обучении"); } // return "обучение алгоритма " + name + "заверешно."; }
public Infrastructure(MainForm form1) { this.form1 = form1; h = new Hyperparameters(form1, "Infrastructure"); form1.logBox.Text += (Environment.MachineName); if (Environment.MachineName == "DESKTOP-B3G20T0") { form1.logBox.Font = new System.Drawing.Font(form1.logBox.Font.FontFamily, 8); } form1.collectLogWhileItFreezed = new List <logItem>(); ///////// чтене файла конфигурации /////////////////////// var configLines = File.ReadAllLines("CONFIG.txt"); bool is_newPC = true; for (int i = 0; i < configLines.Length; i++) { //параметры конфигурации начинаются со строки содержащей имя компа if (configLines[i].Contains(Environment.MachineName)) { is_newPC = false; for (int j = i + 1; j < configLines.Length; j++) { //параметры конфигурации заканчиваются, когда встречается пустая строка if (configLines[j] != "") { try { h.add(configLines[j]); } catch { } } else { break; } } break; } } //////////////////////////////////////////////////////// if (is_newPC | h.getValueByName("mode") == null) { showModeSelector(); } else { newLog(); } // ИНИЦИАЛИЗАЦИЯ ГЛАВНОЙ ФОРМЫ DpiFix(); form1.WindowState = FormWindowState.Minimized; if (logPath != null) { form1.vis = new MultiParameterVisualizer(form1.picBox, form1); mode = h.getValueByName("mode"); if (mode != "Агент") { startAgentManager(); form1.log(""); // agentManagerView = new AgentManagerView(agentManager); // agentManagerView.Show(); } form1.pathPrefix = h.getValueByName("path_prefix"); form1.log(""); form1.WindowState = FormWindowState.Maximized; } else { } }