/// <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);
        }
示例#2
0
        /// <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);
        }