📅  最后修改于: 2023-12-03 15:05:33.184000             🧑  作者: Mango
在TensorFlow.js中,tf.norm()函数用于计算向量或矩阵的L2范数,也称为欧几里得范数。
tf.norm(x, ord, axis, keepDims);
参数说明:
返回一个张量,包含一个或多个元素的L2范数。
const x = tf.tensor2d([[1, 2], [3, 4]]);
const result = tf.norm(x);
result.print(); //输出5.477
const y = tf.tensor([1, -2, 3, -4]);
const result2 = tf.norm(y, 1);
result2.print(); //输出10
const z = tf.tensor([1, -2, 3, -4]);
const result3 = tf.norm(z, Infinity);
result3.print(); //输出4
在上面的示例中,我们使用了tf.tensor2d()和tf.tensor()函数来创建一个二维张量和一维张量,然后分别计算了它们的L2范数、L1范数和无穷范数。输出结果分别为5.477、10和4。
tf.norm()函数可以在很多机器学习任务中使用,如正则化、损失函数的计算等。在训练神经网络时,我们通常会使用正则化以避免过拟合。我们可以使用L2范数来对权重进行正则化,计算方式为将所有权重的平方和开方,然后乘以一个正则化系数。
const weight = tf.variable(tf.tensor([[1, 2], [3, 4]]));
const regularizer = tf.mul(tf.norm(weight), lambda);
const loss = tf.add(tf.mean(tf.square(yhat.sub(y))), regularizer);
在上面的示例中,我们首先创建了一个变量weight用于存储模型参数,然后计算了L2范数,并乘以一个正则化系数lambda,最后将正则化项加入损失函数中。这样可以有效地控制模型的复杂度,提高泛化能力。