TensorFlow.js 是一個 JavaScript 庫,用於在 Web 應用程序和 Node.js 中訓練和部署機器學習模型。您可以使用 tensorflow.js 從頭開始開發機器學習模型,也可以使用提供的 API 在瀏覽器或 Node.js 服務器上訓練現有模型。
安裝TenserFlow.js:我們可以通過以下兩種方法安裝和使用TenserFlow.js。
方法一:我們可以使用CDN鏈接來運行Tensorflow.js代碼,而無需安裝它。將以下 CDN 鏈接添加到 HTML 文件 head 部分的 script 標記中。
<script src=”https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js”></script>
方法2:我們可以使用npm安裝。在通過 npm 安裝 TensorFlow.js 之前,首先確保您已經安裝了 Node.js 和 npm。
npm install @tensorflow/tfjs
Tensorflow.js tf.Functional 類:TensorFlow.js 中的 tf.Function 類是一種包裝構造 TensorFlow 計算的函數的方法,使序列化和執行計算變得更容易。 TensorFlow 計算是一係列獲取輸入 Tensor 對象並生成輸出 Tensor 對象的操作。例如,您可能想要定義一個計算,將兩個數字相加,將結果乘以第三個數字,然後應用 ReLU 激活函數。通常,您可以通過創建 TensorFlow 操作並在 TensorFlow 會話中執行它們來定義此類計算。但是,這可能很麻煩,特別是如果您想要序列化計算並在不同的環境中執行它。 tf.Function 類提供了一種將計算包裝在函數中的方法,使其更容易序列化和執行。要創建 tf.Function,您需要定義一個函數,該函數接受輸入 Tensor 對象並返回輸出 Tensor 對象。然後將此函數傳遞給 tf.Function 構造函數。
示例 1:TensorFlow.js 庫定義一個簡單函數 addAndRelu,它將兩個張量作為輸入,將它們加在一起,然後應用 ReLU 激活函數。然後將該函數包裝在 TensorFlow.js tf.function 中以獲得更好的性能。然後使用值 1 和 2 創建兩個張量,並將其作為輸入傳遞給函數 addAndRelu,並將生成的張量存儲在變量 c 中。然後在 c 上調用 dataSync 方法以檢索 JavaScript 數字形式的值,並將其記錄在控製台中。
Javascript
import * as tf from '@tensorflow/tfjs';
// Define a simple function that adds two numbers and
//applies the ReLU activation function.
function addAndRelu(a, b) {
const c = a.add(b);
return c.relu();
}
// Wrap the function in a tf.Function.
const func = tf.function(addAndRelu);
// Define the input tensors.
const a = tf.tensor(1);
const b = tf.tensor(2);
// Execute the function and get the result.
const c = func(a, b);
// Print the result.
console.log(c.dataSync());
輸出:
[3]
示例 2:TensorFlow.js 庫定義一個函數 sumOfSquares,該函數接受數字數組作為輸入並返回數字的平方和。該函數使用 for 循環迭代數組的元素,並將每個元素的平方添加到變量 sum 中。然後將該函數包裝在 TensorFlow.js tf.function 中以獲得更好的性能。然後使用數字數組 [1, 2, 3] 創建一個張量,並將其作為輸入傳遞給函數 sumOfSquares,並將得到的張量存儲在變量 y 中。然後在 y 上調用 dataSync 方法以檢索 JavaScript 數字形式的值並將其記錄在控製台中。
Javascript
import * as tf from '@tensorflow/tfjs';
// Define a function that takes an array of numbers and
//returns the sum of the squares of the numbers.
function sumOfSquares(x) {
let sum = 0;
for (let i = 0; i < x.length; i++) {
sum += x[i] * x[i];
}
return sum;
}
// Wrap the function in a tf.Function.
const func = tf.function(sumOfSquares);
// Define the input tensor.
const x = tf.tensor([1, 2, 3]);
// Execute the function and get the result.
const y = func(x);
// Print the result.
console.log(y.dataSync());
輸出:
[14]
示例 3:用於定義函數的TensorFlow.js 庫行總和它接受 2D 張量作為輸入並返回張量每行的總和。該函數使用張量的求和方法,其中 axis=1 參數意味著按行求和。然後該函數被包裝在TensorFlow.js中tf.function為了更好的性能。
然後使用二維數組 [[1, 2, 3], [4, 5, 6]] 創建一個張量,並將其作為輸入傳遞給函數 rowSums,並將得到的張量存儲在變量 y 中。然後在 y 上調用 dataSync 方法以檢索 JavaScript 數組形式的值,並將其記錄在控製台中。因此它將輸出具有兩個元素 [6,15] 的數組,它們是原始張量中的行之和。
Javascript
import * as tf from '@tensorflow/tfjs';
// Define a function that takes a 2D Tensor
//and returns the sum of the rows.
function rowSums(x) {
return x.sum(axis = 1);
}
// Wrap the function in a tf.Function.
const func = tf.function(rowSums);
// Define the input tensor.
const x = tf.tensor([[1, 2, 3], [4, 5, 6]]);
// Execute the function and get the result.
const y = func(x);
// Print the result.
console.log(y.dataSync());
輸出:
[6, 15]
參考:https://js.tensorflow.org/api/latest/
相關用法
- Tensorflow.js tf.depthToSpace()用法及代碼示例
- Tensorflow.js tf.abs()用法及代碼示例
- Tensorflow.js tf.acos()用法及代碼示例
- Tensorflow.js tf.acosh()用法及代碼示例
- Tensorflow.js tf.asin()用法及代碼示例
- Tensorflow.js tf.asinh()用法及代碼示例
- Tensorflow.js tf.atan()用法及代碼示例
- Tensorflow.js tf.atan2()用法及代碼示例
- Tensorflow.js tf.atanh()用法及代碼示例
- Tensorflow.js tf.equal()用法及代碼示例
- Tensorflow.js tf.greater()用法及代碼示例
- Tensorflow.js tf.greaterEqual()用法及代碼示例
- Tensorflow.js tf.less()用法及代碼示例
- Tensorflow.js tf.lessEqual()用法及代碼示例
- Tensorflow.js tf.logicalAnd()用法及代碼示例
- Tensorflow.js tf.logicalNot()用法及代碼示例
- Tensorflow.js tf.logicalOr()用法及代碼示例
- Tensorflow.js tf.logicalXor()用法及代碼示例
- Tensorflow.js tf.onesLike()用法及代碼示例
- Tensorflow.js tf.print()用法及代碼示例
- Tensorflow.js tf.range()用法及代碼示例
- Tensorflow.js tf.reciprocal()用法及代碼示例
- Tensorflow.js tf.reverse()用法及代碼示例
- Tensorflow.js tf.round()用法及代碼示例
- Tensorflow.js tf.rsqrt()用法及代碼示例
注:本文由純淨天空篩選整理自anurag_07大神的英文原創作品 Tensorflow.js tf.Functional Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。