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); } }
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); }
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; } }
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); }
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); }
/// <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(); }
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); }