Example #1
0
def test_factorization_sparse():
    I, J, K, rank = 10, 20, 75, 5
    Tmat = sprand(I, J * K, 0.1).tocoo()
    T = unfolded_sptensor((Tmat.data, (Tmat.row, Tmat.col)), None, 0, [], (I, J, K)).fold()
    core, U = tucker_hooi.tucker_hooi(T, rank, maxIter=20)

    Tmat = Tmat.toarray()
    T = unfolded_dtensor(Tmat, 0, (I, J, K)).fold()
    core2, U2 = tucker_hooi.tucker_hooi(T, rank, maxIter=20)

    assert_true(allclose(core2, core))
    for i in range(len(U)):
        assert_true(allclose(U2[i], U[i]))
Example #2
0
def test_factorization():
    I, J, K, rank = 10, 20, 75, 5
    A = orthomax(randn(I, rank))
    B = orthomax(randn(J, rank))
    C = orthomax(randn(K, rank))

    core_real = dtensor(randn(rank, rank, rank))
    T = core_real.ttm([A, B, C])
    core, U = tucker_hooi.tucker_hooi(T, rank)

    assert_true(allclose(T, ttm(core, U)))
    assert_true(allclose(A, orthomax(U[0])))
    assert_true(allclose(B, orthomax(U[1])))
    assert_true(allclose(B, orthomax(U[2])))
    assert_true(allclose(core_real, core))