diff --git a/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/index.html b/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/index.html new file mode 100644 index 00000000..98213dfd --- /dev/null +++ b/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/index.html @@ -0,0 +1,18 @@ + + + + + Neural network with custom architecture + + + + + + + + +

Neural network with custom architecture

+ + + + \ No newline at end of file diff --git a/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/sketch.js b/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/sketch.js new file mode 100644 index 00000000..69ec8fc2 --- /dev/null +++ b/p5js/NeuralNetwork/NeuralNetwork_multiple-layers/sketch.js @@ -0,0 +1,72 @@ +let nn; +const nn_options = { + inputs: 1, + outputs: 1, + layers: [ + ml5.tf.layers.dense({ + units: 16, + inputShape: [1], + activation: 'sigmoid', + }), + ml5.tf.layers.dense({ + units: 16, + inputShape: [1], + activation: 'relu', + }), + ml5.tf.layers.dense({ + units: 1, + activation: 'sigmoid', + }) + ], + debug: true +} + +function setup() { + createCanvas(400, 400); + background(240); + nn = ml5.neuralNetwork(nn_options); + console.log(nn); + createTrainingData(); + + nn.normalizeData(); + const train_options = { + epochs: 32 + } + nn.train(train_options, finishedTraining); +} + +function finishedTraining(){ + + nn.predict([10], function(err, result){ + if(err){ + console.log(err); + return + } + console.log(result) + }) + + nn.predict([390], function(err, result){ + if(err){ + console.log(err); + return + } + console.log(result) + }) +} + +function createTrainingData(){ + for(let i = 0; i < 400; i++){ + if(i%2){ + const x = floor(random(0, width/2)); + nn.addData([x], [0]) + }else { + const x = floor(random(width/2, width)); + nn.addData([x], [1]) + } + } + +} + +// function draw(){ + +// } \ No newline at end of file