Ejemplo n.º 1
0
        private void LoadTrainData()
        {
            OpenFileDialog openFile = new OpenFileDialog();

            if (openFile.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    network = networkService.ReadDataTrain(openFile.FileName);
                }
                catch (Exception)
                {
                    MessageBox.Show("No se pudo cargar el archivo");
                }
            }
            if (network != null)
            {
                txtInputs.Text   = network.NoInputs.ToString();
                txtOutputs.Text  = network.NoOutputs.ToString();
                txtPatterns.Text = network.NoPatterns.ToString();
                InitializeWeights(network.NoInputs, network.NoOutputs);
                FillDataGridWeights(weights);
                threshold             = new double[network.NoOutputs];
                threshold[0]          = 0.3;
                trainParams           = new TrainParams();
                trainParams.Weights   = weights;
                trainParams.Threshold = threshold;
                FillDataGridThreshold(trainParams.Threshold);
            }
        }
Ejemplo n.º 2
0
        public double[] simulateNetwork(TrainParams trainParams, double [] x)
        {
            int noOutputs = trainParams.Weights.GetLength(0);
            int noInputs  = trainParams.Weights.GetLength(1);

            double[] yr = new double[noOutputs];
            var      s  = new double[noOutputs];

            for (int i = 0; i < noOutputs; i++)
            {
                for (int j = 0; j < noInputs; j++)
                {
                    var xj  = x[j];
                    var wji = trainParams.Weights[i, j];
                    s[i] = s[i] + (xj * wji);
                    Console.WriteLine("xi: " + xj);
                    Console.WriteLine("wji: " + wji);
                }
                Console.WriteLine("si: " + s[i]);
                s[i] = s[i] - trainParams.Threshold[i];
                Console.WriteLine(i + " Si: " + s[i]);
                yr[i] = calculateEscalon(s[i]);
            }
            return(yr);
        }
Ejemplo n.º 3
0
 private void btnLoadNetworkParams_Click(object sender, EventArgs e)
 {
     try
     {
         OpenFileDialog openFileDialog = new OpenFileDialog();
         if (openFileDialog.ShowDialog() == DialogResult.OK)
         {
             trainParams = networkService.ReadNetworkTrainParams(openFileDialog.FileName);
         }
         FillDataGridWeights(trainParams.Weights);
         FillDataGridThreshold(trainParams.Threshold);
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 4
0
        private void LoadTrainParams()
        {
            TrainParams    AuxParams;
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                AuxParams = networkService.ReadNetworkTrainParams(openFileDialog.FileName);
                if (AuxParams.Weights.GetLength(0) == network.NoOutputs && AuxParams.Weights.GetLength(1) == network.NoInputs)
                {
                    trainParams = AuxParams;
                }
                else
                {
                    MessageBox.Show("incoherencia entre los datos de entrenamiento y los pesos o umbrales");
                }
            }
            FillDataGridWeights(trainParams.Weights);
            FillDataGridThreshold(trainParams.Threshold);
        }
Ejemplo n.º 5
0
        public TrainParams ReadNetworkTrainParams(string path)
        {
            StreamReader sr      = File.OpenText(path);
            StreamReader auxSr   = File.OpenText(path);
            string       s       = "";
            int          columns = 0;
            int          rows    = 0;

            while ((s = sr.ReadLine()) != null)
            {
                var a         = s.Split(';');
                var weights   = a[0].Split('/');
                var threshold = a[1];
                if (rows == 0)
                {
                    columns = weights.Length;
                }
                rows++;
            }
            _weights   = new double[rows, columns];
            _threshold = new double[rows];
            int currentRow = 0;

            while ((s = auxSr.ReadLine()) != null)
            {
                var a         = s.Split(';');
                var weights   = a[0].Split('/');
                var threshold = a[1];
                for (int i = 0; i < weights.Length; i++)
                {
                    _weights[currentRow, i] = double.Parse(weights[i]);
                }
                _threshold[currentRow] = double.Parse(threshold);
                currentRow++;
            }
            TrainParams trainParams = new TrainParams();

            trainParams.Threshold = _threshold;
            trainParams.Weights   = _weights;
            return(trainParams);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Точка входа в приложение
        /// </summary>
        /// <param name="args">Параметры командной строки</param>
        private static void Main(string[] args)
        {
            var scalingFactory = new ScalingFactory <INeuralNetworkImageScaling>();
            var neuralNetwork  = scalingFactory.GetScaleObject(typeof(SRGAN));

            neuralNetwork.ScaleLogger = new ConsoleScaleLogger();

            TrainParams trainParams;

            if (!File.Exists(ConfigPath))
            {
                trainParams = new TrainParams();
                File.WriteAllText(ConfigPath, JsonConvert.SerializeObject(trainParams));
            }
            else
            {
                var data = File.ReadAllText(ConfigPath);
                trainParams = JsonConvert.DeserializeObject <TrainParams>(data);
            }

            neuralNetwork.Train(trainParams);
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
Ejemplo n.º 7
0
        private List <string> CreateParamsList(TrainParams trainParams)
        {
            string        delimiter = "/";
            List <string> data      = new List <string>();
            string        a         = "";

            for (int i = 0; i < trainParams.Weights.GetLength(0); i++)
            {
                for (int j = 0; j < trainParams.Weights.GetLength(1); j++)
                {
                    if (j == trainParams.Weights.GetLength(1) - 1)
                    {
                        a = a + trainParams.Weights[i, j] + ";";
                    }
                    else
                    {
                        a = a + trainParams.Weights[i, j] + delimiter;
                    }
                }
                a = a + trainParams.Threshold[i];
                data.Add(a);
            }
            return(data);
        }