plunkerでtensorflow.js その2


概要

plunkerでtensorflow.jsやってみた。
xorやってみた。
tf.modelで書いてみた。

サンプルコード

const xs = tf.tensor2d([[1, 0], [0, 1], [1, 1], [0, 0]], [4, 2]);
const ys = tf.tensor2d([[1], [1], [0], [0]], [4, 1]);
const input = tf.input({
  shape: [2]
});
const layer1 = tf.layers.dense({
  units: 8, 
  activation: 'tanh'
});
const layer2 = tf.layers.dense({
  units: 1, 
  activation: 'sigmoid'
});
const output = layer2.apply(layer1.apply(input));
const model = tf.model({
  inputs: input, 
  outputs: output
});
const opti = tf.train.adam(0.01);
model.compile({
  optimizer: opti,
  loss: 'meanSquaredError'
});  
model.fit(xs, ys, {
  batchSize: 4,
  epochs: 1000,
}).then((d) => {
  var str = "loss = ";
  str += d.history.loss[0]; 
  str += "<br><br>1, 1 = ";
  var pre0 = model.predict(tf.tensor2d([1, 1], [1, 2]));
  str += pre0.dataSync() + "<br>0, 0 = ";
  var pre1 = model.predict(tf.tensor2d([0, 0], [1, 2]));
  str += pre1.dataSync() + "<br>0, 1 = ";
  var pre2 = model.predict(tf.tensor2d([0, 1], [1, 2]));
  str += pre2.dataSync() + "<br>1, 0 = ";
  var pre3 = model.predict(tf.tensor2d([1, 0], [1, 2]));
  str += pre3.dataSync() + "<br>";
  document.write(str);
});


成果物

以上。