TensorFlow.js 是 Google 推出的一款开源机器学习平台,可以在浏览器和 Node.js 中运行。它不仅包含了 TensorFlow 的核心功能,并且为 JavaScript 开发者提供了一种简单易用、灵活多变的方式来实现机器学习应用。
准备工作
在开始之前,需要安装 Node.js 和 npm。可以从 Node.js 官网下载并安装最新版本:https://nodejs.org/en/
接下来,在命令行中使用 npm 安装 TensorFlow.js:
npm install @tensorflow/tfjs
安装完成后,就可以在项目中引入 TensorFlow.js:
const tf = require('@tensorflow/tfjs');
如果要在浏览器中使用 TensorFlow.js,则可以直接使用以下 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.8.0/dist/tf.min.js"></script>
常用 API
Tensor
Tensor 是 TensorFlow.js 中最基本的数据结构,代表一个多维数组。可以通过以下方式创建一个 Tensor:
const a = tf.tensor([1, 2, 3, 4]); const b = tf.tensor([[1, 2], [3, 4]]);
Tensor 还支持一些常见的运算操作,例如加、减、乘、除等:
const a = tf.tensor([1, 2, 3, 4]); const b = tf.tensor([5, 6, 7, 8]); const c = a.add(b); // 相加 const d = a.sub(b); // 相减 const e = a.mul(b); // 相乘 const f = a.div(b); // 相除
Layers
Layers 是 TensorFlow.js 中用来构建神经网络模型的模块。可以使用以下代码创建一个简单的全连接层:
const model = tf.sequential(); model.add(tf.layers.dense({units: 10, inputShape: [784]}));
其中 dense
表示这是一个全连接层,units
表示神经元个数,inputShape
表示输入的形状。
Model
Model 是 TensorFlow.js 中用来训练和评估神经网络模型的模块。可以使用以下代码编译和训练一个简单的线性回归模型:
-- -------------------- ---- ------- ----- ----- - ---------------- --------------------------------- -- ----------- ------- -------------------- ------------------- ---------- -------- ----- -- - --------------- -- -- --- --- ---- ----- -- - --------------- -- -- --- --- ---- ------------- --- -------- ------------ -- - ------------------------------ --- ------------- -- ------ ---
其中 compile
用于配置模型的损失函数和优化器,fit
用于训练模型,predict
用于预测结果。
Data
Data 是 TensorFlow.js 中用来读取和处理数据的模块。可以使用以下代码加载并处理一个 CSV 文件:
-- -------------------- ---- ------- ----- ------ - ------------------------------------------------------------------------------------------------------------ ----- ------- - ------------------- --------------- ------ --------- --------- ----- ---------------- - -------------------------------------------------------- -- - ------ - --- -------------------------- --- ------------- - --- ----- ----------- - ------ ------------------------------------------------- ----- ----- - ---------------- --------------------------------- -- ----------- ----------------- --------------- ---------- ---------------- ----- ------------------ --- ----- --------------------------------------------- - ----------------------------------------------------------- -------- ----------------------------------------------------------------------------------