Exemple #1
0
def test_mean_wasserstein():
    covmats = CovMats.random(10, 10)
    old_dist = mean_wasserstein(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.wasserstein(covmats)

    return _get_state(old_dist, new_dist, "mean wasserstein")
def compute(matrice_order, loop_number):
    covmats = CovMats.random(1, matrice_order)

    for i in range(0, loop_number):
        mean = Mean.log_euclidean(covmats)
        covmats.add_all(
            [Geodesic.log_euclidean(covmat, mean) for covmat in covmats])
Exemple #3
0
def test_mean_log_euclidean():
    covmats = CovMats.random(10, 10)
    old_dist = mean_logeuclid(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.log_euclidean(covmats)

    return _get_state(old_dist, new_dist, "mean log euclidian")
Exemple #4
0
def test_mean_riemann():
    covmats = CovMats.random(10, 10)
    old_dist = mean_riemann(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.euclidean(covmats)

    return _get_state(old_dist, new_dist, "mean riemann")
Exemple #5
0
def test_mean_log_determinant():
    covmats = CovMats.random(10, 10)
    old_dist = mean_logdet(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.log_determinant(covmats)

    return _get_state(old_dist, new_dist, "mean log determinant")
Exemple #6
0
def test_mean_wasserstein():
    covmats = CovMats.random(10, 10)
    old_dist = mean_wasserstein(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.wasserstein(covmats)

    return _get_state(old_dist, new_dist, "mean wasserstein")
Exemple #7
0
def test_mean_log_determinant():
    covmats = CovMats.random(10, 10)
    old_dist = mean_logdet(covmats.numpy_array)
    covmats.reset_covmats_fields()
    new_dist = Mean.log_determinant(covmats)

    return _get_state(old_dist, new_dist, "mean log determinant")
def test_tangent():
    covmat = CovMat.random(10)
    covmats = CovMats.random(10, 10)
    old = tangent_space(covmats.numpy_array, covmat.numpy_array)
    covmats.reset_covmats_fields()
    new = TangentSpace.tangent(covmats, covmat)

    return _get_state(old, new, "tangent space")
Exemple #9
0
def test_untangent():
    covmat = CovMat.random(10)
    covmats = CovMats.random(10, 10)
    tangent = TangentSpace.tangent(covmats, covmat)
    old = untangent_space(tangent, covmat.numpy_array)
    covmats.reset_covmats_fields()
    new = TangentSpace.untangent(tangent, covmat)

    return _get_state(old, new, "untangent")
def test_untangent():
    covmat = CovMat.random(10)
    covmats = CovMats.random(10, 10)
    tangent = TangentSpace.tangent(covmats, covmat)
    old = untangent_space(tangent, covmat.numpy_array)
    covmats.reset_covmats_fields()
    new = TangentSpace.untangent(tangent, covmat)

    return _get_state(old, new, "untangent")
def compute(matrice_order, loop_number):
    covmats = CovMats.random(1, matrice_order)

    for i in range(0, loop_number):
        mean = Mean.log_euclidean(covmats)
        covmats.add_all([Geodesic.log_euclidean(covmat, mean) for covmat in covmats])
sys.path.append(
    os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))

from Utils.CovMat import CovMat
from Utils.CovMats import CovMats

size = [10, 25, 50, 75, 100, 250, 500, 750, 1000]

# WARMUP
print("Warm up...")
for i in range(0, 10):
    warm_up_covmat = CovMat.random(1000)
    warm_up_covmat.expm

for i in range(0, len(size)):
    covmats = CovMats.random(10, size[i])

    t = timeit.Timer(
        "mean_wasserstein(covmats.numpy_array)",
        setup=
        "from __main__ import covmats; from oldPyRiemann.mean import mean_wasserstein; import Utils.OpenBLAS"
    )
    old_time = t.timeit(number=size[len(size) - i - 1]) / size[len(size) - i -
                                                               1]

    t = timeit.Timer(
        "covmats.reset_fields(); Mean.wasserstein(covmats)",
        setup="from Utils.Mean import Mean; from __main__ import covmats")
    new_time = t.timeit(number=size[len(size) - i - 1]) / size[len(size) - i -
                                                               1]
Exemple #13
0
import timeit

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))

from Utils.CovMat import CovMat
from Utils.CovMats import CovMats

size = [10, 25, 50, 75, 100, 250, 500, 750, 1000]

# WARMUP
print("Warm up...")
for i in range(0, 10):
    warm_up_covmat = CovMat.random(1000)
    warm_up_covmat.expm

for i in range(0, len(size)):
    covmats = CovMats.random(10, size[i])
    covmat = CovMat.random(size[i])

    t = timeit.Timer("tangent_space(covmats.numpy_array, covmat.numpy_array)",
                     setup="from __main__ import covmats, covmat; from oldPyRiemann.tangentspace import tangent_space; import Utils.OpenBLAS")
    old_time = t.timeit(number=size[len(size) - i - 1]) / size[len(size) - i - 1]

    t = timeit.Timer("covmats.reset_fields(); covmat.reset_fields(); TangentSpace.tangent(covmats, covmat)",
                     setup="from Utils.TangentSpace import TangentSpace; from __main__ import covmats, covmat")
    new_time = t.timeit(number=size[len(size) - i - 1]) / size[len(size) - i - 1]

    print("matrix size : " + "10x" + str(size[i]) + "x" + str(size[i]) + "\t\told time : " + str(
        old_time) + " sec\t\t" + "new time : " + str(new_time) + " sec\t\t" + "speed up : " + str(
        old_time / new_time))