Skip to content

Instantly share code, notes, and snippets.

@abhigkar
Created November 29, 2020 12:20
Show Gist options
  • Save abhigkar/8f99dc1ece434325f4567d97ba825fe6 to your computer and use it in GitHub Desktop.
Save abhigkar/8f99dc1ece434325f4567d97ba825fe6 to your computer and use it in GitHub Desktop.
var model=atob("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");
var tf = require("tensorflow").create(2048, model);
for (var x=0;x<Math.PI;x+=0.1) {
tf.getInput()[0] = x;
tf.invoke();
var result = tf.getOutput()[0];
print(`sin(${x}) => tf ${result}, real ${Math.sin(x)}`);
}
// draw to the display!
g.clear();
g.setColor("#ff0000");
g.moveTo(0,120);
for (var i=0;i<240;i++) {
var x = i*2*Math.PI/240;
var result = Math.sin(x);
g.lineTo(i,120 - 100*result);
}
g.setColor("#00ff00");
g.moveTo(0,120);
for (var i=0;i<240;i++) {
var x = i*2*Math.PI/240;
tf.getInput()[0] = x;
tf.invoke();
var result = tf.getOutput()[0];
g.lineTo(i,120 - 100*result);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment