/// <summary> /// Метод для сохранения нейронной сети в файл /// </summary> public static void WriteToFile() { string filename = FileNetwork.GetFile(Save.NNetwork.Name, FileNetwork.SAVE_FILE, true); string bin = JsonConvert.SerializeObject(NetworkToDict()); FileNetwork.WriteToFile(filename, bin); }
/// <summary> /// Метод для конвертации нейронной сети в json /// </summary> /// <param name="nnetwork">ссылка на нейронную сеть</param> /// <returns>Полный путь на файл json</returns> public static string NetworkToJson(NeuralNetwork nnetwork) { if (nnetwork.FirstLayer == null) { return(""); // проверка на наличие слоев } if (nnetwork.TypeSupervised == null || nnetwork.TypeData == null) { return(""); } // создание списка слоев и работа с первым, так как необходимо добавить ему параметр Layer layer = nnetwork.FirstLayer; List <JsonLayer> layers = new List <JsonLayer> { new JsonLayer(layer.Type, GetParamsFirstLayer(layer)) }; layer = layer.NextLayer; // добавление всех слоев нейронной сети через соединения while (layer != null && layer.NextLayer != nnetwork.FirstLayer) { layers.Add(new JsonLayer(layer.Type, layer.GetParams())); layer = layer.NextLayer; } // проверка на то, что все слои участвуют в нейронной сети if (layers.Count != nnetwork.Layers.Count) { return(""); } // конвертация в json string filename = FileNetwork.GetFile(nnetwork.Name, FileNetwork.JSON_FILE, true); string json = JsonConvert.SerializeObject(new JsonNeuralNetwork(layers, nnetwork.Params, nnetwork.TypeSupervised, nnetwork.TypeData)); FileNetwork.WriteToFile(filename, json); return(json); }