xxxxxxxxxx
87
let model;
let targetLabel = "C"
let state = 'collection';
function setup() {
createCanvas(400, 400);
let options = {
inputs: ['x','y'],
outputs: ['label'],
task: 'classification',
debug: 'true'
};
model = ml5.neuralNetwork(options);
background(255);
}
function keyPressed(){
targetLabel = key.toUpperCase();
if (key == 't'){
state = 'training'
console.log('Starting training');
model.normalizeData();
let options = {
epochs: 200
};
model.train(options, whileTraining, finishTraining);
}
}
function whileTraining(epoch, loss){
console.log(epoch);
}
function finishTraining(){
console.log('finished training');
state = 'prediction';
}
function mousePressed(){
let inputs = {
x: mouseX,
y: mouseY
};
if (state == 'collection'){
let target = {
label: targetLabel
}
model.addData(inputs,target);
stroke(0);
noFill();
ellipse(mouseX,mouseY,24);
fill(0)
noStroke();
textAlign(CENTER,CENTER);
text(targetLabel,mouseX,mouseY);
} else if(state == 'prediction'){
model.classify(inputs, gotResults);
}
}
function gotResults(error, results){
if(error){
console.log(error);
return;
}else {
console.log(results);
stroke(0);
noFill();
ellipse(mouseX,mouseY,24);
fill(0,0,255);
noStroke();
textAlign(CENTER,CENTER);
text(results[0].label,mouseX,mouseY);
}
}