Skip to content

Instantly share code, notes, and snippets.

@xtuc
Created September 5, 2017 12:09
Show Gist options
  • Save xtuc/a4e10f545a9c828b54e3520c55a7be10 to your computer and use it in GitHub Desktop.
Save xtuc/a4e10f545a9c828b54e3520c55a7be10 to your computer and use it in GitHub Desktop.
const {Layer, Network} = require('synaptic');
const inputLayer = new Layer(2);
const hiddenLayer = new Layer(3);
const outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
const myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer,
});
const learningRate = 0.3;
for (let i = 0; i < 1000000; i++) {
// 1+1 => 2
myNetwork.activate([.1, .1]);
myNetwork.propagate(learningRate, [.2]);
// 2+2 => 4
myNetwork.activate([.2, .2]);
myNetwork.propagate(learningRate, [.4]);
// 1+2 => 3
myNetwork.activate([.1, .2]);
myNetwork.propagate(learningRate, [.3]);
// 1+7 => 8
myNetwork.activate([.1, .7]);
myNetwork.propagate(learningRate, [.8]);
}
console.log('');
console.log(Math.round(myNetwork.activate([.1,.0])*10));
console.log(Math.round(myNetwork.activate([.6,.1])*10));
console.log(Math.round(myNetwork.activate([.2,.6])*10));
console.log(Math.round(myNetwork.activate([.1,.1])*10));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment