protected void CreateNeuralNetwork(MathOperationManager mathManager, NeuralNetworkConfiguration configuration)
 {
     this.mathManager             = mathManager;
     this.configuration           = configuration;
     this.currentEpoch            = 0;
     this.currentBatchSize        = NeuralNetworkConfiguration.defaultBatchSize;
     this.neuralLayers            = new List <NeuralLayer>();
     this.biasGradientAccumulator = this.mathManager.CreateMatrix(Enumerable.Repeat <float>(1, this.currentBatchSize).ToArray(), this.currentBatchSize);
     this.CreateNetworkArchitecture();
 }
        private static void DNN(IEnumerable <BatchInputWrapper> trainData, IEnumerable <BatchInputWrapper> cvData)
        {
            using (MathOperationManager mathManager = new MathOperationManager(MathType.GPU))
            {
                var hiddenLayers = new List <int>();
                hiddenLayers.Add(100);
                hiddenLayers.Add(100);
                NeuralNetworkConfiguration config = new NeuralNetworkConfiguration(784, hiddenLayers, 10);
                config.Epochs   = 100;
                config.StepSize = (float)1.5;
                //config.Activation = NeuronActivationType.ReLu;

                using (NeuralNetwork dnn = new NeuralNetwork(mathManager, config))
                {
                    dnn.MiniBatchStochasticGradientDescent(trainData, cvData);
                }
            }
        }
        private static void DNN(IEnumerable<BatchInputWrapper> trainData, IEnumerable<BatchInputWrapper> cvData)
        {
            using (MathOperationManager mathManager = new MathOperationManager(MathType.GPU))
            {
                var hiddenLayers = new List<int>();
                hiddenLayers.Add(100);
                hiddenLayers.Add(100);
                NeuralNetworkConfiguration config = new NeuralNetworkConfiguration(784, hiddenLayers, 10);
                config.Epochs = 100;
                config.StepSize = (float)1.5;
                //config.Activation = NeuronActivationType.ReLu;

                using (NeuralNetwork dnn = new NeuralNetwork(mathManager, config))
                {
                    dnn.MiniBatchStochasticGradientDescent(trainData, cvData);
                }
            }
        }
 public NeuralNetwork(MathOperationManager mathManager, NeuralNetworkConfiguration configuration)
 {
     this.CreateNeuralNetwork(mathManager, configuration);
 }
 public NeuralNetwork(MathOperationManager mathManager, NeuralNetworkConfiguration configuration)
 {
     this.CreateNeuralNetwork(mathManager, configuration);
 }
 protected void CreateNeuralNetwork(MathOperationManager mathManager, NeuralNetworkConfiguration configuration)
 {
     this.mathManager = mathManager;
     this.configuration = configuration;
     this.currentEpoch = 0;
     this.currentBatchSize = NeuralNetworkConfiguration.defaultBatchSize;
     this.neuralLayers = new List<NeuralLayer>();
     this.biasGradientAccumulator = this.mathManager.CreateMatrix(Enumerable.Repeat<float>(1, this.currentBatchSize).ToArray(), this.currentBatchSize);
     this.CreateNetworkArchitecture();
 }
 public NeuralNetworkStore(NeuralNetworkConfiguration configuration, IEnumerable <float[]> matrixDataList, IEnumerable <float[]> biasDataList)
 {
     this.Configuration  = configuration;
     this.MatrixDataList = matrixDataList;
     this.BiasDataList   = biasDataList;
 }
 public NeuralNetworkStore(NeuralNetworkConfiguration configuration, IEnumerable<float[]> matrixDataList, IEnumerable<float[]> biasDataList)
 {
     this.Configuration = configuration;
     this.MatrixDataList = matrixDataList;
     this.BiasDataList = biasDataList;
 }