Exemple #1
0
        public static void ShowCLZOfPoint(XYZ basePoint)
        {
            List <XYZ> CLZPoints = PointsConvertor.StepPointsToXYZByBasePoint(basePoint, CLZInfo.Points);

            Visualizator.ShowPoints(new PointsVisualizator(CLZPoints));
        }
        static void Main()
        {
            do
            {
                Console.Clear();
                Console.WriteLine("MENU: \n 1 - Treinar \n 2 - Carregar Rede Neural \n 3 - Salvar Rede Neural \n 4 - Executar \n 0 - Sair");
                var op = Console.ReadKey().KeyChar;
                if (op == '1')//treinar
                {
                    using (var ofd = new OpenFileDialog()
                    {
                        Filter = "Arquivo Treino File|*.txt", Title = "Selecione o arquivo de treino: "
                    })
                    {
                        if (ofd.ShowDialog() == DialogResult.OK)
                        {
                            using (var ofd2 = new OpenFileDialog()
                            {
                                Filter = "Arquivo Treino File|*.txt", Title = "Selecione o arquivo de treino: "
                            })
                            {
                                Console.Clear();
                                Console.WriteLine("Aguarde...");
                                var neuralFile_A = File.ReadAllLines(ofd.FileName);
                                var pc_A         = PointsConvertor.Converter(neuralFile_A);

                                PointsConverted pc_B = null;
                                if (ofd2.ShowDialog() == DialogResult.OK)
                                {
                                    var neuralFile_B = File.ReadAllLines(ofd2.FileName);
                                    pc_B = PointsConvertor.Converter(neuralFile_B);
                                }
                                var inicio = DateTime.Now;
                                MLP.Train(pc_A, pc_B);
                                Console.WriteLine("Treino realizado com sucesso \n Inicio: " + inicio.ToLongTimeString() + " \n Fim: " + DateTime.Now.ToLongTimeString());
                                Console.ReadKey();
                            }
                        }
                    }
                }
                else if (op == '2')//carregar rede neural
                {
                    using (var ofd = new OpenFileDialog()
                    {
                        Filter = "MLP Files|*.mlp", Title = "Selecione o arquivo de rede neural: "
                    })
                    {
                        if (ofd.ShowDialog() == DialogResult.OK)
                        {
                            try
                            {
                                Console.Clear();
                                Console.WriteLine("Aguarde...");
                                MLP.LoadNetwork(ofd.FileName);
                                Console.WriteLine("Rede neural recarregada com sucesso.");
                                Console.ReadKey();
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("Erro na leitura dos dados.");
                                Console.ReadKey();
                            }
                        }
                    }
                }
                else if (op == '3')//salvar rede neural
                {
                    using (var ofd = new SaveFileDialog()
                    {
                        Filter = "MLP Files|*.mlp", Title = "Salve o arquivo de rede neural: "
                    })
                    {
                        if (ofd.ShowDialog() == DialogResult.OK)
                        {
                            Console.Clear();
                            Console.WriteLine("Aguarde...");
                            var retorno = MLP.SaveNetwork(ofd.FileName);
                            Console.WriteLine("Arquivo salvo em: " + retorno);
                            Console.ReadKey();
                        }
                    }
                }
                else if (op == '4')//executar simulação
                {
                    Console.Clear();
                    Console.WriteLine("Aguarde...");
                    Executa();
                }
            }while (true);
        }
        static void Main(string[] args)
        {
            using (var ofd_A = new OpenFileDialog()
            {
                Filter = "Arquivo Treino File|*.txt", Title = "Selecione o arquivo de treino: "
            })
            {
                if (ofd_A.ShowDialog() == DialogResult.OK)
                {
                    using (var ofd_B = new OpenFileDialog()
                    {
                        Filter = "Arquivo Treino File|*.txt", Title = "Selecione o arquivo de treino: "
                    })
                    {
                        if (ofd_B.ShowDialog() == DialogResult.OK)
                        {
                            Console.Clear();
                            Console.WriteLine("Aguarde...");
                            var neuralFile_A = File.ReadAllLines(ofd_A.FileName);
                            var pc_A         = PointsConvertor.Converter(neuralFile_A);
                            var neuralFile_b = File.ReadAllLines(ofd_B.FileName);
                            var pc_B         = PointsConvertor.Converter(neuralFile_b);

                            //NEURAL FILE A
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_A.entrada, pc_A.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 5000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_A.entrada, pc_A.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 20000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            //NEURAL FILE B
                            Console.WriteLine("===============");
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_B.entrada, pc_B.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 5000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_B.entrada, pc_B.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 20000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            //NEURAL FILE A + B
                            pc_A.Juntar(pc_B);
                            Console.WriteLine("===============");
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_A.entrada, pc_A.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 5000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            for (int i = 1; i <= 16; i++)
                            {
                                var trainingSet = new BasicNeuralDataSet(pc_A.entrada, pc_A.saida);
                                ResetEstrutura(i);
                                double erro = ResultTreinamento(i, trainingSet, 20000);
                                Console.WriteLine($"Neuronios: {i}  | error: {erro}");
                            }
                            Console.ReadKey();
                        }
                    }
                }
            }
        }