public void SaveWeightsAndBiases()
        {
            Directory.CreateDirectory(directoryName + @"\Weights\");
            Directory.CreateDirectory(directoryName + @"\Biases\");

            for (int i = 1; i < noOfLayers; i++)
            {
                string weightsFilePath = directoryName + @"\Weights\" + $"{name}_Weights_{i - 1}_{i}.csv";
                string biasesFilePath  = directoryName + @"\Biases\" + $"{name}_Biases_{i - 1}_{i}.csv";
                CsvHandler.SaveWeights(Connections[i - 1].Weights.Values, weightsFilePath);
                CsvHandler.SaveVector(Connections[i - 1].Biases.Values, biasesFilePath);
            }
        }
 private void SetUpConnections(Connection[] connectionsArray, double learningRate, int activationMethod)
 {
     for (int i = 1; i < noOfLayers; i++)
     {
         var    weights         = new WeightMatrix(MyLayers[i].Values.Length, MyLayers[i - 1].Values.Length);
         var    bias            = new Bias(MyLayers[i].Values.Length);
         string weightsFilePath = directoryName + @"Weights\" + $"{name}_Weights_{i - 1}_{i}.csv";
         string biasesFilePath  = directoryName + @"Biases\" + $"{name}_Biases_{i - 1}_{i}.csv";
         weights.Randomise();
         bias.Randomise();
         if (File.Exists(weightsFilePath))
         {
             weights.Populate(CsvHandler.GetWeights(weightsFilePath));
         }
         if (File.Exists(biasesFilePath))
         {
             bias.Populate(CsvHandler.GetBias(biasesFilePath));
         }
         connectionsArray[i - 1] = new Connection(MyLayers[i - 1], MyLayers[i], weights, bias, learningRate, activationMethod);
     }
 }