UNPKG

@tensorflow/tfjs-core

Version:

Hardware-accelerated JavaScript library for machine intelligence

51 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tf = require("../index"); var jasmine_util_1 = require("../jasmine_util"); var test_util_1 = require("../test_util"); jasmine_util_1.describeWithFlags('gramSchmidt-tiny', test_util_1.ALL_ENVS, function () { it('2x2, Array of Tensor1D', function () { var xs = [tf.randomNormal([2]), tf.randomNormal([2])]; var ys = tf.linalg.gramSchmidt(xs); var y = tf.stack(ys); test_util_1.expectArraysClose(y.transpose().matMul(y), tf.eye(2)); test_util_1.expectArraysClose(tf.sum(xs[0].mul(ys[0])), tf.norm(xs[0]).mul(tf.norm(ys[0]))); }); it('3x3, Array of Tensor1D', function () { var xs = [tf.randomNormal([3]), tf.randomNormal([3]), tf.randomNormal([3])]; var ys = tf.linalg.gramSchmidt(xs); var y = tf.stack(ys); test_util_1.expectArraysClose(y.transpose().matMul(y), tf.eye(3)); test_util_1.expectArraysClose(tf.sum(xs[0].mul(ys[0])), tf.norm(xs[0]).mul(tf.norm(ys[0]))); }); it('3x3, Matrix', function () { var xs = tf.randomNormal([3, 3]); var y = tf.linalg.gramSchmidt(xs); test_util_1.expectArraysClose(y.transpose().matMul(y), tf.eye(3)); }); it('2x3, Matrix', function () { var xs = tf.randomNormal([2, 3]); var y = tf.linalg.gramSchmidt(xs); test_util_1.expectArraysClose(y.matMul(y.transpose()), tf.eye(2)); }); it('3x2 Matrix throws Error', function () { var xs = tf.tensor2d([[1, 2], [3, -1], [5, 1]]); expect(function () { return tf.linalg.gramSchmidt(xs); }) .toThrowError(/Number of vectors \(3\) exceeds number of dimensions \(2\)/); }); it('Mismatching dimensions input throws Error', function () { var xs = [tf.tensor1d([1, 2, 3]), tf.tensor1d([-1, 5, 1]), tf.tensor1d([0, 0])]; expect(function () { return tf.linalg.gramSchmidt(xs); }).toThrowError(/Non-unique/); }); it('Empty input throws Error', function () { expect(function () { return tf.linalg.gramSchmidt([]); }).toThrowError(/empty/); }); }); jasmine_util_1.describeWithFlags('gramSchmidt-non-tiny', test_util_1.WEBGL_ENVS, function () { it('32x512', function () { var xs = tf.randomUniform([32, 512]); var y = tf.linalg.gramSchmidt(xs); test_util_1.expectArraysClose(y.matMul(y.transpose()), tf.eye(32)); }); }); //# sourceMappingURL=linalg_ops_test.js.map