Menu
×
   ❮     
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

用于

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


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 次(周期)

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)};
    });
  }
}

自己尝试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.