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 recurciveVariableAdding(Hyperparameters h, int ID, string expertName) { List <Node> branches = h.getNodesByparentID(ID); if (branches.Count == 0) { if (h.getNodeById(ID).getAttributeValue("variable") != null) { // добавить в список переменных if (h.getNodeById(ID).getAttributeValue("variable") == "numerical") { variablesVisualizer.addParameter(expertName + " " + h.getNodeById(ID).name() + " id=" + ID.ToString(), Color.Cyan, 200); } if (h.getNodeById(ID).getAttributeValue("variable") == "categorical") { variablesVisualizer.addParameter(expertName + " " + h.getNodeById(ID).name() + " id=" + ID.ToString(), Color.Transparent, 60); variablesVisualizer.parameters[variablesVisualizer.parameters.Count - 1].mainFontDepth = 12; } variablesNames.Add(expertName + " " + h.getNodeById(ID).name() + " id=" + ID.ToString()); variablesIDs.Add(ID); } } else { for (int i = 0; i < branches.Count; i++) { recurciveVariableAdding(h, branches[i].ID, expertName); } } }