synaptic
Version:
architecture-free neural network library
38 lines (32 loc) • 979 B
JavaScript
import Network from '../Network';
import Layer from '../Layer';
export default class Perceptron extends Network {
constructor() {
super();
var args = Array.prototype.slice.call(arguments); // convert arguments to Array
if (args.length < 3)
throw new Error('not enough layers (minimum 3) !!');
var inputs = args.shift(); // first argument
var outputs = args.pop(); // last argument
var layers = args; // all the arguments in the middle
var input = new Layer(inputs);
var hidden = [];
var output = new Layer(outputs);
var previous = input;
// generate hidden layers
for (var i = 0; i < layers.length; i++) {
var size = layers[i];
var layer = new Layer(size);
hidden.push(layer);
previous.project(layer);
previous = layer;
}
previous.project(output);
// set layers of the neural network
this.set({
input: input,
hidden: hidden,
output: output
});
}
}