📅  最后修改于: 2023-12-03 14:47:54.890000             🧑  作者: Mango
tf.engine()
函数是TensorFlow.js引擎的核心功能,它提供了用于实现前向传递、反向传递和梯度计算的函数。此外,它还包含了用于创建张量(Tensor)和变量(Variable)的函数。
要使用TensorFlow.js创建张量,可以使用 tf.tensor()
方法,如下所示:
const a = tf.tensor([1, 2, 3, 4]);
console.log(a);
这会创建一个形状为 [4]
的一维张量。
变量是可以在训练期间更新的张量。在TensorFlow.js中,可以使用 tf.variable()
方法创建变量。
const b = tf.variable(tf.tensor([1, 2, 3, 4]));
console.log(b);
这会创建一个可训练的一维张量。
要执行前向传递,可以使用 tf.engine().runKernel()
方法。
const input = tf.tensor([1, 2, 3, 4]);
const kernel = tf.tensor([2, 2, 2, 2]);
const output = tf.engine().runKernel(
backendName, // 执行计算的后端引擎名称
backendConfig, // 后端配置参数
(save) => save(input), // 保存输入张量
(save) => save(kernel), // 保存卷积核张量
(a, b) => a.add(b) // 前向传递操作
);
console.log(output);
这会将输入张量和卷积核张量相加,并返回结果张量。
TensorFlow.js支持自动求导。要执行反向传递,可以使用 tf.engine().backpropagate()
方法。
const x = tf.variable(tf.tensor([1, 2, 3, 4]));
const y = tf.variable(tf.tensor([5, 6, 7, 8]));
const z = x.add(y);
const gradients = tf.engine().backpropagate(
[z], // 反向传递起点的张量列表
[x, y] // 需要计算梯度的变量列表
);
console.log(gradients);
这会返回一个包含 x
和 y
变量梯度的张量对象。
tf.engine()
函数是TensorFlow.js引擎的核心功能,它提供了用于实现前向传递、反向传递和梯度计算的函数。此外,它还包含了用于创建张量和变量的函数。TensorFlow.js使得机器学习的前端实现非常简单易懂,为Web开发带来了新的可能性。