📜  Tensorflow.js tf.engine()函数(1)

📅  最后修改于: 2023-12-03 14:47:54.890000             🧑  作者: Mango

Tensorflow.js tf.engine()函数

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

这会返回一个包含 xy 变量梯度的张量对象。

总结

tf.engine()函数是TensorFlow.js引擎的核心功能,它提供了用于实现前向传递、反向传递和梯度计算的函数。此外,它还包含了用于创建张量和变量的函数。TensorFlow.js使得机器学习的前端实现非常简单易懂,为Web开发带来了新的可能性。