Tensorflow.js tf.linalg.qr()函数
Tensorflow.js 是由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。它还可以帮助开发人员用 JavaScript 语言开发 ML 模型,并且可以直接在浏览器或 Node.js 中使用 ML。
.linalg.qr()函数用于计算 QR 分解,参考 m × n 矩阵应用 Householder 变换。
句法:
tf.linalg.qr(x, fullMatrices?)
参数:
- x:要进行 QR 分解的 tf.Tensor。它的秩必须大于或等于 2。假设其形状为 […, M, N]。它是 tf.Tensor 类型。
- fullMatrices:它是一个可选参数,是布尔类型,默认值为 false。如果它是真的,那么它评估正常大小的Q否则它只评估Q和R的最高N列。
返回值:返回[tf.Tensor, tf.Tensor]。
示例 1:
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining a 2d tensor
const tn = tf.tensor2d([[3, 5], [7, 2]]);
// Calling linalg.qr() function
let [Q, R] = tf.linalg.qr(tn);
// Printing outputs
console.log('q');
Q.print();
console.log('r');
R.print();
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining a 2d tensor
const tn = tf.tensor2d([[3, 5], [7, 2]]);
// Calling linalg.qr() function
let [Q, R] = tf.linalg.qr(tn, true);
// Printing outputs
console.log('Orthogonalized:');
Q.transpose().print();
console.log('Regenerated:');
R.dot(Q).print();
输出:
q
Tensor
[[-0.3939192, 0.919145 ],
[-0.919145 , -0.3939193]]
r
Tensor
[[-7.6157722, -3.8078861],
[0 , 3.8078861 ]]
示例 2:
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining a 2d tensor
const tn = tf.tensor2d([[3, 5], [7, 2]]);
// Calling linalg.qr() function
let [Q, R] = tf.linalg.qr(tn, true);
// Printing outputs
console.log('Orthogonalized:');
Q.transpose().print();
console.log('Regenerated:');
R.dot(Q).print();
输出:
Orthogonalized:
Tensor
[[-0.3939192, -0.919145 ],
[0.919145 , -0.3939193]]
Regenerated:
Tensor
[[6.4999986 , -5.499999 ],
[-3.4999995, -1.4999998]]
参考: https://js.tensorflow.org/api/latest/#linalg.qr