plunkerでtensorflow.js その3
1347 ワード
概要
plunkerでtensorflow.jsやってみた。
xorやってみた。
tf.variableで書いてみた。
サンプルコード
const xt = tf.tensor2d([[1, 0], [0, 1], [1, 1], [0, 0]], [4, 2]);
const yt = tf.tensor2d([[1], [1], [0], [0]], [4, 1]);
function func(x) {
const h = tf.tanh(x.matMul(w1).add(b1));
return tf.sigmoid(h.matMul(w2).add(b2));
}
function loss(pred, label) {
return tf.losses.meanSquaredError(pred, label).mean();
}
const w1 = tf.variable(tf.randomNormal([2, 8]));
const b1 = tf.variable(tf.zeros([8]));
const w2 = tf.variable(tf.randomNormal([8, 1]));
const b2 = tf.variable(tf.zeros([1]));
const opti = tf.train.adam(0.01);
let cost = 0;
for (let i = 0; i < 1000; i++)
{
cost = opti.minimize(() => loss(func(xt), yt), true);
}
let str = "loss = ";
str += cost;
str += "<br><br>1, 0 = ";
let pre = func(xt);
pre = pre.dataSync();
str += pre[0] + "<br>0, 1 = ";
str += pre[1]+ "<br>1, 1 = ";
str += pre[2] + "<br>0, 0 = ";
str += pre[3] + "<br>";
document.write(str);
成果物
const xt = tf.tensor2d([[1, 0], [0, 1], [1, 1], [0, 0]], [4, 2]);
const yt = tf.tensor2d([[1], [1], [0], [0]], [4, 1]);
function func(x) {
const h = tf.tanh(x.matMul(w1).add(b1));
return tf.sigmoid(h.matMul(w2).add(b2));
}
function loss(pred, label) {
return tf.losses.meanSquaredError(pred, label).mean();
}
const w1 = tf.variable(tf.randomNormal([2, 8]));
const b1 = tf.variable(tf.zeros([8]));
const w2 = tf.variable(tf.randomNormal([8, 1]));
const b2 = tf.variable(tf.zeros([1]));
const opti = tf.train.adam(0.01);
let cost = 0;
for (let i = 0; i < 1000; i++)
{
cost = opti.minimize(() => loss(func(xt), yt), true);
}
let str = "loss = ";
str += cost;
str += "<br><br>1, 0 = ";
let pre = func(xt);
pre = pre.dataSync();
str += pre[0] + "<br>0, 1 = ";
str += pre[1]+ "<br>1, 1 = ";
str += pre[2] + "<br>0, 0 = ";
str += pre[3] + "<br>";
document.write(str);
以上。
Author And Source
この問題について(plunkerでtensorflow.js その3), 我々は、より多くの情報をここで見つけました https://qiita.com/ohisama@github/items/a4245959407e1a016869著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .