xxxxxxxxxx
56
const learningRate = 0.2;
const optimizer = tf.train.sgd(learningRate);
let x_vals = []
let y_vals = []
let angle
let m, b
let placeholder=200
function setup() {
createCanvas(400, 400);
m = tf.variable(tf.scalar(random(1)))
b = tf.variable(tf.scalar(random(1)))
angle = 45
}
function draw() {
background(100);
if (x_vals.length>0){
const ys = tf.tensor1d(y_vals)
optimizer.minimize(() => {loss(predict(x_vals),ys)},m);
}
// console.log(PI/mouseX)
// angle +=0.01
// console.log(angle*100)
stroke(255)
strokeWeight(5)
for(let i = 0; i< xs.length; i++){
let px = map(xs[i],0,1,0,400)
let py = map(ys[i],1,0,0,400)
point(px,py)
}
fill(255)
translate(200,200)
angleMode(DEGREES)
rotate(angle)
line(0,282.842712475,0,-282.842712475)
}
function mousePressed(){
x_vals.push(map(mouseX,0,400,0,1))
y_vals.push(map(mouseY,0,400,1,0))
}
function loss(pred,labels){
//pred.sub(label).square().mean()
return pred.sub(label).square().mean()
}
function predict(x) {
const xs = tf.variable(tf.tensor1d(x))
//y = mx + b
const ys = xs.mul(m).add(b)
return ys
}