メニュー 閉じる

031. p5.jsからTensorFlow.jsをちょっといじってみる – その1

TensorFlow.jsを触ってみました。まだまだ全然理解できていませんが、ひとまずy = 0.1 * x + 0.3という完成形を用意して、y = ax + bというモデルに対していろんなxを入れて結果のyと完成形yとの誤差を計算し、重み付けを行い、係数a、bを導くという感じなんでしょうか。まあ、とにかく難しいですが引き続きテストしていきます。

var random_data = [];

var x_data;
var y_data;

var a;
var b;

var x;
var y;

var loss;
var optimizer;

function setup () {

	pixelDensity (displayDensity ());
	createCanvas (windowWidth, windowHeight);
	colorMode (RGB, 256);
	background (0);

	for (var i = 0; i < 100; i++) {
		random_data[i] = random ();
	}

	x_data = tf.tensor1d (random_data);
	y_data = tf.add (tf.mul (x_data, tf.scalar (0.1)), tf.scalar (0.3));

	a = tf.variable (tf.zeros([1]));
	b = tf.variable (tf.zeros([1]));

	y = x => tf.add (tf.mul (a, x), b);
	optimizer = tf.train.sgd (0.5);

	loss = (y, yd) => y.sub (yd).square ().mean ();
	optimizer = tf.train.sgd( 0.5);

	for (var i = 0; i < 200; i++) {
		optimizer.minimize (() => loss (y (x_data), y_data));
		console.log (i, 'a: ' + a.dataSync (), 'b: ' + b.dataSync ());
	} 

}

function draw () {

}

 

Posted in p5.js , processing