An interest in a neural net library?
Hi everyone. I would like to get your opinion if there is any interest for a library that implements simple neural networks trained via backpropagation. The main idea is to define the configuration of a feed-forward multi-layer network via template parameters, and also provide implementations for a couple of well-known variations of networks (i.e. convolutional, sampling, network ensemble etc). // Define a network ensemble with two networks with the same input and output size, // but different number of neuron layers and different number of neurons in each layer. typedef neural_network<100, 50, 10> network_1; typedef neural_network<100, 70, 20, 10> network_2; auto network = ensemble(network_1(), network_2()); // Train the network from a training set. // item.input is a 100-element input vector. // item.target is the 10-element desired output vector. for (auto item : training_set) network.train(item.input, item.target, learning_rate); // Feed some input data into the network to get the result. auto result = network.process(input); This code on github that my nephew and myself wrote a couple of years ago can be used as a more detailed illustration for the idea: https://github.com/nsokolnikov/mathlib/blob/master/src/neuralnet.h Also, this github repo has two sample projects that illustrate usage of the library. First sample trains a simple network with a simulated activity pattern and then uses the network to classify more simulated load as low, medium, or high: https://github.com/nsokolnikov/mathlib/tree/master/samples/NeuralNetwork Second sample trains a network on a part of MNIST data set of hand-written digits, and then uses the network to recognize the remaining part of the MNIST data set: https://github.com/nsokolnikov/mathlib/tree/master/samples/TextRecognition Thank you, Serguei Martchenko
participants (1)
-
Sergei Marchenko