xxxxxxxxxx
56
function setup() {
createCanvas(400, 400);
// create the network
const { Layer, Network } = window.synaptic;
var inputLayer = new Layer(2);
var hiddenLayer = new Layer(3);
var outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
// train the network
var learningRate = 0.3;
for (var i = 0; i < 20000; i++)
{
let hx = random()
let bx = random()
myNetwork.activate([hx,bx]);
if(hx > bx){
myNetwork.propagate(learningRate, [0]);
} else if(hx < bx) {
myNetwork.propagate(learningRate, [1]);
} else if(hx == bx){
myNetwork.propagate(learningRate, [0.5]);
}
}
// test the network
let score = 0
let tests = 100
for(let i = 0; i < tests; i++){
let hx = random()
let bx = random()
let nnOut = myNetwork.activate([0,0])[0];
if( ( (hx>bx) && (nnOut<0.5) ) || ( (hx<bx) && (nnOut>0.5) ) ) score++
}
print("the network was correct "+((score/tests)*100)+"% of the time")
}
function draw() {
background(220);
}