Synapse

As simple as Neural Networks get.

About Synapse

Synapse is an open-source, simple, and minimalistic Neural Network library in both Java and C, with a big emphasis on a simple API that just makes sense - instantiating a network, training it on a real database, and saving the model can take as little as 3 lines of code. Currently, only the Java version of Synapse is in development.

NeuralNetwork network = NeuralNetwork.load("model.snn");

Matrix input = new Matrix(new float[][] {
    { 5.1f, 3.5f, 1.4f, 0.2f }
});

Matrix prediction = network.predict(input);

Extremely simple API

NeuralNetwork network = new NeuralNetwork(new Layer[] {
    new DenseLayer(784, 128, new ReLU()),
    new DenseLayer(128, 64, new ReLU()),
    new DenseLayer(64, 10, new Softmax())
});

network.fit(CSVLoader.loadDataset("MNIST.csv"), 5, 0.01f);
network.save("mnist.snn");

Training on MNIST

Coming soon!

C and Java compatibility

Interested in Synapse? You can find the Java GitHub here.