1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
# /usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
import ot
from .benchmark import setup_backends, exec_bench, convert_to_html_table
def setup(n_samples):
rng = np.random.RandomState(123456789)
a = rng.rand(n_samples // 4, 100)
b = rng.rand(n_samples, 100)
wa = ot.unif(n_samples // 4)
wb = ot.unif(n_samples)
M = ot.dist(a.copy(), b.copy())
return wa, wb, M
if __name__ == "__main__":
n_runs = 100
warmup_runs = 10
param_list = [50, 100, 500, 1000, 2000, 5000]
setup_backends()
results = exec_bench(
setup=setup,
tested_function=lambda *args: ot.bregman.sinkhorn(*args, reg=1, stopThr=1e-7),
param_list=param_list,
n_runs=n_runs,
warmup_runs=warmup_runs,
)
print(
convert_to_html_table(
results,
param_name="Sample size",
main_title=f"Sinkhorn Knopp - Averaged on {n_runs} runs",
)
)
|