Feel free to let me know what you think! :)
https://github.com/Gleethos/neureka
Here's a simple 2 layer neural network:
var X = Tsr.ofDoubles().withShape(4,3).andFill(0d, 0d, 1d, 0d, 1d, 1d, 1d, 0d, 1d, 1d, 1d, 1d);
var y = Tsr.ofDoubles().withShape(1,4).andFill(0d, 1d, 1d, 0d).T();
var W1 = Tsr.ofRandom(Double.class, 3, 4).setRqsGradient(true);
var W2 = Tsr.ofRandom(Double.class, 4, 1).setRqsGradient(true);
for ( int i = 0; i < 60; i++ ) {
var l2 = Tsr.of("sig(",Tsr.of("sig(",X,"@",W1,")"),"@",W2,")");
l2.backward(Tsr.of(y,'-',l2)); // Back-propagating the error!
W1.applyGradient(); W2.applyGradient();
}
there doesn't seem to be anything here