選單
×
   ❮     
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 提供支援