菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TensorFlow 模型


TesorFlow.js

一个用于

训练和部署
机器学习模型的 JavaScript 库
在浏览器中


Tensorflow 模型

模型机器学习中重要的构建块。

对于不同的机器学习任务,您必须将不同类型的层组合成一个模型,该模型可以使用数据进行训练以预测未来值。

TensorFlow.js 支持不同类型的模型和不同类型的层。

TensorFlow 模型是具有一个或多个神经网络


一个 TensorFlow 项目

一个 TensorFlow 项目有这个典型的工作流程

  • 收集数据
  • 创建模型
  • 向模型添加层
  • 编译模型
  • 训练模型
  • 使用模型

示例

假设您知道一个定义直线的功能

Y = 1.2X + 5

那么您可以使用 JavaScript 公式计算任何 y 值

y = 1.2 * x + 5;

为了演示 TensorFlow.js,我们可以训练一个 TensorFlow.js 模型来根据 X 输入预测 Y 值。

TensorFlow 模型不知道这个函数。

// 创建训练数据
const xs = tf.tensor([0, 1, 2, 3, 4]);
const ys = xs.mul(1.2).add(5);

// 定义一个线性回归模型
const model = tf.sequential();
model.add(tf.layers.dense({units:1, inputShape:[1]}));

// 指定损失和优化器
model.compile({loss:'meanSquaredError', optimizer:'sgd'});

// 训练模型
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});

// 使用模型
function myFunction() {
  const xArr = [];
  const yArr = [];
  for (let x = 0; x <= 10; x++) {
    xArr.push(x);
    let result = model.predict(tf.tensor([Number(x)]));
    result.data().then(y => {
      yArr.push(Number(y));
      if (x == 10) {plot(xArr, yArr)};
    });
  }
}

自己动手试一试 »

下面的示例将解释此内容



收集数据

创建一个具有 5 个 x 值的张量 (xs)

const xs = tf.tensor([0, 1, 2, 3, 4]);

创建 5 个正确 y 答案的张量 (ys)(将 xs 乘以 1.2 并加 5)

const ys = xs.mul(1.2).add(5);

创建模型

创建一个顺序模型。.

const model = tf.sequential();

在一个顺序模型中,一个层的输出是下一个层的输入。


添加层

向模型添加一个密集层。

该层只有一个单元(张量),形状为 1(一维)

model.add(tf.layers.dense({units:1, inputShape:[1]}));

在密集层中,每个节点都连接到前一层中的每个节点。


编译模型

使用 meanSquaredError 作为损失函数和 sgd(随机梯度下降)作为优化器函数来编译模型

model.compile({loss:'meanSquaredError', optimizer:'sgd'});

Tensorflow 优化器

  • Adadelta - 实现 Adadelta 算法。
  • Adagrad - 实现 Adagrad 算法。
  • Adam - 实现 Adam 算法。
  • Adamax - 实现 Adamax 算法。
  • Ftrl - 实现 FTRL 算法。
  • Nadam - 实现 NAdam 算法。
  • Optimizer - Keras 优化器的基类。
  • RMSprop - 实现 RMSprop 算法。
  • SGD - 随机梯度下降优化器。

训练模型

使用 xs 和 ys 训练模型,重复 500 次(epochs)

model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});

使用模型

模型训练后,您可以将其用于许多不同的目的。

此示例在给定 10 个 x 值的情况下预测 10 个 y 值,并调用一个函数在图中绘制预测

function myFunction() {
  const xArr = [];
  const yArr = [];
  for (let x = 0; x <= 10; x++) {
    let result = model.predict(tf.tensor([Number(x)]));
    result.data().then(y => {
      xArr.push(x);
      yArr.push(Number(y));
      if (x == 10) {display(xArr, yArr)};
    });
  }
}

自己动手试一试 »

此示例在给定 10 个 x 值的情况下预测 10 个 y 值,并调用一个函数来显示这些值

function myFunction() {
  const xArr = [];
  const yArr = [];
  for (let x = 0; x <= 10; x++) {
    let result = model.predict(tf.tensor([Number(x)]));
    result.data().then(y => {
      xArr.push(x);
      yArr.push(Number(y));
      if (x == 10) {display(xArr, yArr)};
    });
  }
}

自己动手试一试 »


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持