JavaScript 机器学习入门:TensorFlowjs 初学者指南

javascript 机器学习入门:tensorflowjs 初学者指南

机器学习 (ml) 迅速改变了软件开发的世界。直到最近,得益于 tensorflow pytorch 等库,python 仍是 ml 领域的主导语言。但随着 tensorflow.js 的兴起,javascript 开发人员现在可以深入令人兴奋的机器学习世界,使用熟悉的语法直接在浏览器或 node.js 上构建和训练模型。

在这篇博文中,我们将探索如何开始使用 javascript 进行机器学习。我们将演练使用 tensorflow.js.

构建和训练简单模型的示例

为什么选择 tensorflow.js?

tensorflow.js 是一个开源库,可让您完全用 javascript 定义、训练和运行机器学习模型。它既可以在浏览器中运行,也可以在 node.js 上运行,这使得它对于各种 ml 应用程序具有难以置信的多功能性。

以下是 tensorflow.js 令人兴奋的几个原因:

  1. 实时训练:您可以直接在浏览器中运行模型,提供实时交互。
  2. 跨平台:相同的代码可以在服务器和客户端环境上运行。
  3. 硬件加速:它使用webgl进行gpu加速,从而加快计算速度。

让我们看看如何开始!

1. 设置 tensorflow.js

在深入研究代码之前,您需要安装tensorflow.js。您可以通过

浏览器设置

要在浏览器中使用 tensorflow.js,只需在 html 文件中包含以下

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>

node.js 设置

对于 node.js 环境,您可以使用 npm 安装它:

npm install @tensorflow/tfjs

2. 构建简单的神经网络模型

让我们创建一个简单的神经网络来预测基本线性函数 y = 2x - 1 的输出。我们将使用 tensorflow.js 来创建和训练该模型。

第 1 步:定义模型

我们首先定义一个具有一个密集层的顺序模型(线性堆栈):

// import tensorflow.js
import * as tf from '@tensorflow/tfjs';

// create a simple sequential model
const model = tf.sequential();

// add a single dense layer with 1 unit (neuron)
model.add(tf.layers.dense({units: 1, inputshape: [1]}));

在这里,我们创建了一个具有一层致密层的模型。该层有一个神经元(单位:1),并且需要一个输入特征(inputshape:[1])。

第 2 步:编译模型

接下来,我们通过指定优化器和损失函数来编译模型:

// compile the model
model.compile({
  optimizer: 'sgd',  // stochastic gradient descent
  loss: 'meansquarederror'  // loss function for regression
});

我们使用随机梯度下降(sgd)优化器,这对于小模型非常有效。损失函数meansquarederror适用于像这样的回归任务。

第 3 步:准备训练数据

我们现在将为函数 y = 2x - 1 创建一些训练数据。在 tensorflow.js 中,数据存储在张量(多维数组)中。以下是我们生成一些训练数据的方法:

// generate some synthetic data for training
const xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]);  // inputs (x values)
const ys = tf.tensor2d([1, 3, 5, 7, 9], [5, 1]);  // outputs (y values)

在本例中,我们创建了一个具有输入值 (0, 1, 2, 3, 4) 的张量 xs 和一个相应的输出张量 ys,其值使用 y = 2x - 1 计算得出。

第 4 步:训练模型

现在,我们可以根据我们的数据训练模型:

// train the model
model.fit(xs, ys, {epochs: 500}).then(() => {
  // once training is complete, use the model to make predictions
  model.predict(tf.tensor2d([5], [1, 1])).print();  // output will be close to 2*5 - 1 = 9
});

在这里,我们训练模型 500 个时期(训练数据的迭代)。训练后,我们使用模型来预测输入值为 5 的输出,这应该返回一个接近 9 的值 (y = 2*5 - 1 = 9)。

3. 在浏览器中运行模型

要在浏览器中运行此模型,您需要一个包含 tensorflow.js 库和 javascript 代码的 html 文件:



    <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>TensorFlow.js Example</title><script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script><!-- Your JS file --><h1>Simple Neural Network with TensorFlow.js</h1>


并且在您的 app.js 文件中,您可以包含上面的模型构建和训练代码。

以上就是JavaScript 机器学习入门:TensorFlowjs 初学者指南的详细内容,更多请关注其它相关文章!