public NeuralLayer(MathOperationManager mathManager, int neuronCount, int batchSize, bool isInputLayer = false, bool isOutputLayer = false)
 {
     this.IsInputLayer  = isInputLayer;
     this.IsOutputLayer = isOutputLayer;
     this.Data          = mathManager.CreateMatrix(neuronCount, batchSize);
     this.Bias          = mathManager.CreateMatrix(ArrayUtilities.GetArrayWithRandomValues(neuronCount), neuronCount);
     this.ErrorGradient = mathManager.CreateMatrix(neuronCount, batchSize);
 }
 public NeuralLink(MathOperationManager mathManager, NeuralLayer layerIn, NeuralLayer layerOut)
 {
     this.Weights       = mathManager.CreateMatrix(ArrayUtilities.GetArrayWithRandomValues(layerOut.Data.Row * layerIn.Data.Row), layerOut.Data.Row, layerIn.Data.Row);
     this.ErrorGradient = mathManager.CreateMatrix(layerOut.Data.Row, layerIn.Data.Row);
 }