首先需准备数据并转换为tf.Tensor格式,接着用tf.sequential()构建模型,添加密集层;然后编译模型,选择优化器与损失函数;再调用model.fit()训练模型,指定epochs;最后用model.predict()进行预测。整个流程在JavaScript中完成,适合浏览器端轻量级机器学习应用,需注意数据格式与异步处理。

用TensorFlow.js在浏览器或Node.js环境中进行JavaScript机器学习模型训练,已经成为前端智能化的重要方向。它让你无需离开JavaScript生态,就能构建、训练和部署机器学习模型。下面介绍如何使用TensorFlow.js完成一个简单的模型训练流程。
准备数据
机器学习的第一步是准备训练数据。TensorFlow.js使用tf.Tensor来表示数值张量,你需要把原始数据转换为张量格式。
例如,训练一个线性回归模型预测 y = 2x - 1:
- 生成输入 x 和真实输出 y 的张量
- 使用 tf.tensor1d() 创建一维张量
- 对数据做归一化或标准化(如需要)
const ys = tf.tensor1d([1, 3, 5, 7, 9]);
构建模型
使用 tf.sequential() 创建一个顺序模型,然后添加层。对于简单任务,一个密集层就足够了。
立即学习“Java免费学习笔记(深入)”;
- inputShape 指定输入维度
- units 是神经元数量
- 选择合适的激活函数(如线性、relu等)
model.add(tf.layers.dense({
units: 1,
inputShape: [1],
activation: 'linear'
}));
配置训练过程
编译模型时指定优化器、损失函数和评估指标。
model.compile({optimizer: tf.train.sgd(0.01),
loss: 'meanSquaredError'
});
开始训练
调用 model.fit() 开始训练,传入输入和目标张量,指定训练轮数(epochs)。
- epochs 表示完整遍历数据集的次数
- 可传入 callbacks 监控训练进度
- 使用 yieldEvery: 'epoch' 提高浏览器响应性
epochs: 100,
verbose: 1
});
使用模型预测
训练完成后,可以用 model.predict() 进行推理。
const result = model.predict(tf.tensor1d([6]));result.print(); // 输出应接近 11
基本上就这些。TensorFlow.js让JavaScript也能玩转机器学习,适合轻量级模型和浏览器端智能应用。虽然性能不如Python端强大,但胜在部署简单、交互直接。不复杂但容易忽略的是数据格式和异步处理——所有训练操作都是异步的,记得用 await 或 Promise 处理。










