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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。