xxxxxxxxxx
65
// Daniel Shiffman
// http://codingtra.in
// XOR
// https://youtu.be/188B6k_F9jU
// Neural Network Library
// https://github.com/CodingTrain/Toy-Neural-Network-JS
let nn;
let lr_slider;
let training_data = [{
inputs: [0, 0],
outputs: [0]
},
{
inputs: [0, 1],
outputs: [1]
},
{
inputs: [1, 0],
outputs: [1]
},
{
inputs: [1, 1],
outputs: [0]
}
];
function setup() {
createCanvas(400, 400);
nn = new NeuralNetwork(2, 4, 1);
lr_slider = createSlider(0.01, 0.5, 0.1, 0.01);
}
function draw() {
background(0);
for (let i = 0; i < 100; i++) {
let data = random(training_data);
nn.train(data.inputs, data.outputs);
}
nn.setLearningRate(lr_slider.value());
let resolution = 10;
let cols = width / resolution;
let rows = height / resolution;
for (let i = 0; i < cols; i++) {
for (let j = 0; j < rows; j++) {
let x1 = i / cols;
let x2 = j / rows;
let inputs = [x1, x2];
let y = nn.predict(inputs);
noStroke();
fill(y * 255);
rect(i * resolution, j * resolution, resolution, resolution);
}
}
}