2018 年 6 月 7 日 - 作者:Laurence Moroney
使用 TensorFlow.js,您不仅可以在浏览器中运行机器学习模型进行推理,还可以训练它们。在本超简单的教程中,我将向您展示一个基本的“Hello World”示例,它将教您入门所需的脚手架。
让我们从最简单的网页开始
<html> <head></head> <body></bo…
<html>
<head></head>
<body></body>
</html>
有了这个,您需要做的第一件事是添加对 TensorFlow.js 的引用,以便您可以使用 TensorFlow API。为了方便起见,JS 文件可在 CDN 上获得<html>
<head>
<!-- Load TensorFlow.js -->
<!-- Get latest version at https://github.com/tensorflow/tfjs -->
<script src="https://cdn.jsdelivr.net.cn/npm/@tensorflow/[email protected]"> </script>
现在我使用的是 0.11.2 版本,但请务必查看 GitHub 以获取最新版本。const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
要完成模型的定义,我将其编译,指定我的损失类型和优化器。我将选择最基本的损失类型 - meanSquaredError,我的优化器将是标准随机梯度下降(又称“sgd”)model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
要训练模型,我需要一个包含我的输入(即“X”)值的张量,以及另一个包含我的输出(即“Y”)值的张量。使用 TensorFlow,我还需要定义给定张量的形状const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
因此,我的 Xs 是值 -1、0、1、2、3 和 4,定义为 6x1 张量。我的 Ys 是 -3、-1、1、3、5、7,形状相同。请注意,当我们说 Y=2X-1 时,第 n 个 Y 条目是第 n 个 X 条目的值。await model.fit(xs, ys, {epochs: 500});
完成后,模型将得到训练,因此我们可以预测新 X 的值。例如,如果我们要找出 X=10 的 Y 并将其写入页面中的<div>,则代码如下所示document.getElementById('output_field').innerText =
model.predict(tf.tensor2d([10], [1, 1]));
请注意,输入是一个张量,其中我们指定它是一个包含值 10 的 1x1 张量。<html>
<head>
<!-- Load TensorFlow.js -->
<!-- Get latest version at https://github.com/tensorflow/tfjs -->
<script src="https://cdn.jsdelivr.net.cn/npm/@tensorflow/[email protected]">
</script>
</head>
<body>
<div id="output_field"></div>
</body>
<script>
async function learnLinear(){
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
await model.fit(xs, ys, {epochs: 500});
document.getElementById('output_field').innerText =
model.predict(tf.tensor2d([10], [1, 1]));
}
learnLinear();
</script>
<html>
这就是在您的浏览器中创建非常简单的机器学习模型,并使用 TensorFlow.js 执行所需的所有操作。有了这个基础,您可以继续学习更高级的概念。