TensorFlow.js 是一个 JavaScript 库,用于在 Web 浏览器和 Node.js 中训练和部署机器学习模型。本教程将向您展示如何通过在浏览器中训练一个最小模型并使用该模型进行预测来开始使用 TensorFlow.js。
示例代码可在 GitHub 上找到。
先决条件
要完成本教程,您需要在开发环境中安装以下内容
安装示例
获取源代码并安装依赖项
- 克隆或下载 tfjs-examples 存储库。
- 进入
getting-started
目录:cd tfjs-examples/getting-started
。 - 安装依赖项:
yarn install
。
如果您查看 package.json
文件,您可能会注意到 TensorFlow.js 不是依赖项。这是因为示例从 CDN 加载 TensorFlow.js。以下是来自 index.html
的完整 HTML 代码
<html>
<head>
<script src="https://cdn.jsdelivr.net.cn/npm/@tensorflow/tfjs@latest"> </script>
</head>
<body>
<h4>Tiny TFJS example<hr/></h4>
<div id="micro-out-div">Training...</div>
<script src="./index.js"> </script>
</body>
</html>
头部中的 <script>
元素加载 TensorFlow.js 库,而主体末尾的 <script>
元素加载机器学习脚本。
有关依赖 TensorFlow.js 的其他方法,请参阅 设置教程。
运行示例
运行示例并查看结果
- 在
tfjs-examples/getting-started
目录中,运行yarn watch
。 - 在浏览器中导航到
http://127.0.0.1:1234
。
您应该看到一个页面标题,并在其下方看到一个类似于 38.31612014770508 的数字。确切的数字会有所不同,但应该接近 39。
刚刚发生了什么?
当加载 index.js
时,它会使用满足方程 $ y = 2x - 1 $ 的 $ x $ 和 $ y $ 值训练一个 tf.sequential
模型。
// Create a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training. (y = 2x - 1)
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
// Train the model using the data.
await model.fit(xs, ys, {epochs: 250});
然后,它会为看不见的 $ x $ 值 20
预测 $ y $ 值,并将预测结果更新到 DOM 中以显示。
// Use the model to do inference on a data point the model hasn't seen.
// Should print approximately 39.
document.getElementById('micro-out-div').innerText =
model.predict(tf.tensor2d([20], [1, 1])).dataSync();
$ 2 * 20 - 1 $ 的结果为 39,因此预测的 $ y $ 值应该大约为 39。
下一步
本教程提供了一个使用 TensorFlow.js 在浏览器中训练模型的最小示例。有关使用 JavaScript 训练模型的更深入介绍,请参阅 TensorFlow.js 指南。
更多入门方法
以下是一些开始使用 TensorFlow.js 和 Web ML 的方法。
观看 TensorFlow.js Web ML 课程
如果您是希望获得 Web ML 实用介绍的 Web 开发人员,请查看 Google Developers 视频课程《面向 Web 开发人员的机器学习》。本课程将向您展示如何在您的网站和应用程序中使用 TensorFlow.js。
编写 ML 程序,无需直接处理张量
如果您希望开始学习机器学习,而无需管理优化器或张量操作,那么请查看 ml5.js 库。
ml5.js 库构建在 TensorFlow.js 之上,它提供了一个简洁易用的 API,可在 Web 浏览器中访问机器学习算法和模型。
安装 TensorFlow.js
了解如何在 Web 浏览器或 Node.js 中安装 TensorFlow.js 以进行实现。
将预训练模型转换为 TensorFlow.js
了解如何将 Python 中的预训练模型转换为 TensorFlow.js。
从现有的 TensorFlow.js 代码中学习
tfjs-examples
存储库提供了使用 TensorFlow.js 执行各种 ML 任务的小型示例实现。
可视化 TensorFlow.js 模型的行为
tfjs-vis
是一个小型库,用于在 Web 浏览器中进行可视化,旨在与 TensorFlow.js 一起使用。
准备数据以使用 TensorFlow.js 进行处理
TensorFlow.js 支持使用 ML 最佳实践处理数据。