Exemple #1
0
def test_speed_comparison2(filename=None, n_range=None):
    if n_range is None:
        n_range = [2**k for k in range(2)]

    numpy.random.seed(0)
    perfplot.plot(
        setup=lambda n: (numpy.random.rand(100, n), numpy.random.rand(n, 100)),
        kernels=[
            lambda xy: numpy.dot(*xy),
            lambda xy: accupy.kdot(*xy, K=2),
            lambda xy: accupy.kdot(*xy, K=3),
            lambda xy: accupy.fdot(*xy),
        ],
        labels=[
            "numpy.dot", "accupy.kdot[2]", "accupy.kdot[3]", "accupy.fdot"
        ],
        n_range=n_range,
        xlabel="n",
        logx=True,
        logy=True,
    )
    plt.title("dot(random(100, n), random(n, 100))")
    # plt.show()

    if filename:
        plt.savefig(filename, transparent=True, bbox_inches="tight")
Exemple #2
0
def test_speed_comparison1(n_range=None):
    if n_range is None:
        n_range = [2**k for k in range(2)]

    numpy.random.seed(0)
    perfplot.plot(
        setup=lambda n: (numpy.random.rand(n, 100), numpy.random.rand(100, n)),
        kernels=[
            lambda xy: numpy.dot(*xy),
            lambda xy: accupy.kdot(*xy, K=2),
            lambda xy: accupy.kdot(*xy, K=3),
            lambda xy: accupy.fdot(*xy),
        ],
        labels=[
            "numpy.dot", "accupy.kdot[2]", "accupy.kdot[3]", "accupy.fdot"
        ],
        colors=plt.rcParams["axes.prop_cycle"].by_key()["color"][:4],
        n_range=n_range,
        title="dot(random(n, 100), random(100, n))",
        xlabel="n",
        logx=True,
        logy=True,
        automatic_order=False,
    )
    plt.gca().set_aspect(0.2)
    lgd = plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.0)
    # plt.show()
    plt.savefig(
        "speed-comparison-dot1.png",
        transparent=True,
        bbox_extra_artists=(lgd, ),
        bbox_inches="tight",
    )
    return
Exemple #3
0
def test_speed_comparison1(filename=None, n_range=None):
    plt.style.use(dufte.style)

    if n_range is None:
        n_range = [2 ** k for k in range(2)]

    numpy.random.seed(0)
    perfplot.plot(
        setup=lambda n: numpy.random.rand(n, 100),
        kernels=[
            sum,
            lambda p: numpy.sum(p, axis=0),
            accupy.kahan_sum,
            lambda p: accupy.ksum(p, K=2),
            lambda p: accupy.ksum(p, K=3),
            accupy.fsum,
        ],
        labels=[
            "sum",
            "numpy.sum",
            "accupy.kahan_sum",
            "accupy.ksum[2]",
            "accupy.ksum[3]",
            "accupy.fsum",
        ],
        n_range=n_range,
        xlabel="n",
    )
    plt.title("Sum(random(n, 100))")

    # plt.show()
    if filename:
        plt.savefig(filename, transparent=True, bbox_inches="tight")
def performance_comparison_to():
    import perfplot

    Y_b = 20
    L_A = 64 / numpy.pi / 5

    c = 0.69  # average
    cam16 = colorio.CAM16(c, Y_b, L_A)

    def cio(x):
        return cam16.to_xyz100(x, "JCh")

    cam16_legacy = CAM16Legacy(c, Y_b, L_A)

    def cio_legacy(x):
        return cam16_legacy.to_xyz100(x, "JCh")

    perfplot.plot(
        setup=lambda n: numpy.random.rand(3, n),
        kernels=[cio, cio_legacy],
        n_range=100000 * numpy.arange(11),
        xlabel="Number of input samples",
    )

    # import matplotlib2tikz
    # matplotlib2tikz.save('fig.tikz')
    return
Exemple #5
0
def test_speed_comparison1(n_range=None):
    if n_range is None:
        n_range = [2**k for k in range(2)]

    perfplot.plot(setup=lambda n:
                  (numpy.random.rand(n, 100), numpy.random.rand(100, n)),
                  kernels=[
                      lambda xy: numpy.dot(*xy),
                      lambda xy: accupy.kdot(*xy, K=2),
                      lambda xy: accupy.kdot(*xy, K=3),
                      lambda xy: accupy.fdot(*xy),
                  ],
                  labels=[
                      'numpy.dot',
                      'accupy.kdot[2]',
                      'accupy.kdot[3]',
                      'accupy.fdot',
                  ],
                  colors=plt.rcParams['axes.prop_cycle'].by_key()['color'][:4],
                  n_range=n_range,
                  title='dot(random(n, 100), random(100, n))',
                  xlabel='n',
                  logx=True,
                  logy=True,
                  automatic_order=False)
    plt.gca().set_aspect(0.2)
    lgd = plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.0)
    # plt.show()
    plt.savefig(
        'speed-comparison-dot1.png',
        transparent=True,
        bbox_extra_artists=(lgd, ),
        bbox_inches='tight',
    )
    return
Exemple #6
0
def test_no_labels():
    def mytest(a):
        return numpy.c_[a, a]

    kernels = [mytest]
    r = [2**k for k in range(4)]

    perfplot.plot(setup=numpy.random.rand,
                  kernels=kernels,
                  n_range=r,
                  xlabel="len(a)")
    return
Exemple #7
0
def test_speed_comparison1(n_range=None):
    if n_range is None:
        n_range = [2 ** k for k in range(2)]

    numpy.random.seed(0)
    perfplot.plot(
        setup=lambda n: numpy.random.rand(n, 100),
        kernels=[
            sum,
            lambda p: numpy.sum(p, axis=0),
            accupy.kahan_sum,
            lambda p: accupy.ksum(p, K=2),
            lambda p: accupy.ksum(p, K=3),
            accupy.fsum,
        ],
        labels=[
            "sum",
            "numpy.sum",
            "accupy.kahan_sum",
            "accupy.ksum[2]",
            "accupy.ksum[3]",
            "accupy.fsum",
        ],
        colors=plt.rcParams["axes.prop_cycle"].by_key()["color"][:6],
        n_range=n_range,
        title="Sum(random(n, 100))",
        xlabel="n",
        logx=True,
        logy=True,
        automatic_order=False,
    )
    plt.gca().set_aspect(0.5)
    lgd = plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.0)
    # plt.show()
    plt.savefig(
        "speed-comparison1.png",
        transparent=True,
        bbox_extra_artists=(lgd,),
        bbox_inches="tight",
    )
    return
Exemple #8
0
def test_speed_comparison1(n_range=None):
    if n_range is None:
        n_range = [2**k for k in range(2)]

    perfplot.plot(setup=lambda n: numpy.random.rand(n, 100),
                  kernels=[
                      sum,
                      lambda p: numpy.sum(p, axis=0),
                      accupy.kahan_sum,
                      lambda p: accupy.ksum(p, K=2),
                      lambda p: accupy.ksum(p, K=3),
                      accupy.fsum,
                  ],
                  labels=[
                      'sum',
                      'numpy.sum',
                      'accupy.kahan_sum',
                      'accupy.ksum[2]',
                      'accupy.ksum[3]',
                      'accupy.fsum',
                  ],
                  colors=plt.rcParams['axes.prop_cycle'].by_key()['color'][:6],
                  n_range=n_range,
                  title='Sum(random(n, 100))',
                  xlabel='n',
                  logx=True,
                  logy=True,
                  automatic_order=False)
    plt.gca().set_aspect(0.5)
    lgd = plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.0)
    # plt.show()
    plt.savefig(
        'speed-comparison1.png',
        transparent=True,
        bbox_extra_artists=(lgd, ),
        bbox_inches='tight',
    )
    return
Exemple #9
0
def test_speed(N=2):
    numpy.random.seed(1)
    osa = colorio.OsaUcs()
    cielab = colorio.CIELAB()
    # cam16 = colorio.CAM16(0.69, 20, L_A=64 / numpy.pi / 5)
    ciecam02 = colorio.CIECAM02(0.69, 20, L_A=64 / numpy.pi / 5)

    perfplot.plot(
        # Don't use numpy.random.rand(3, n) to avoid the CIECAM breakdown
        setup=lambda n: numpy.outer(numpy.random.rand(3), numpy.ones(n)) * 10,
        equality_check=None,
        kernels=[
            osa.to_xyz100,
            cielab.to_xyz100,
            # cam16.to_xyz100,
            lambda Jsh: ciecam02.to_xyz100(Jsh, "Jsh"),
            numpy.cbrt,
        ],
        labels=["OSA-UCS", "CIELAB", "CIECAM02", "cbrt"],
        n_range=[2**n for n in range(N)],
        logx=True,
        logy=True,
        # relative_to=3
    )
Exemple #10
0
    """ Force sample from ChainerRL PrioritizedReplayBuffer
    """
    def sample(n):
        _rb.memory.wait_priority_after_sampling = False
        return _rb.sample(n)

    return sample


# ReplayBuffer.add
perfplot.plot(
    setup=env,
    time_unit="ms",
    kernels=[add_b(brb),
             add_r(rrb),
             add_c(crb), lambda e: rb.add(**e)],
    labels=["OpenAI/Baselines", "Ray/RLlib", "Chainer/ChainerRL", "cpprb"],
    n_range=[n for n in range(1, 102, 10)],
    xlabel="Step size added at once",
    logx=False,
    logy=False,
    equality_check=None)
plt.title("Replay Buffer Add Speed")
plt.savefig("ReplayBuffer_add.png", transparent=True, bbox_inches="tight")
plt.close()

# Fill Buffers
o = np.random.rand(buffer_size, obs_shape)
e = {
    "obs": o,  # [0,1)
    "act": np.random.rand(buffer_size, act_shape),
    "rew": np.random.rand(buffer_size),
Exemple #11
0
def test_no_labels():
    perfplot.plot(setup=numpy.random.rand, kernels=kernels, n_range=r, xlabel="len(a)")
    return
Exemple #12
0
            [4, 1, 1, 4, 1])
        return itertools.islice(dataset, n)

    return sample


# ReplayBuffer.add
perfplot.plot(setup=env,
              time_unit="ms",
              kernels=[
                  add_client_insert(client, "ReplayBuffer"),
                  add_client(client, "ReplayBuffer"),
                  add_tf_client(tf_client, "ReplayBuffer"),
                  lambda e: rb.add(**e)
              ],
              labels=[
                  "DeepMind/Reverb: Client.insert",
                  "DeepMind/Reverb: Client.writer",
                  "DeepMind/Reverb: TFClient.insert", "cpprb"
              ],
              n_range=[n for n in range(1, 102, 10)],
              xlabel="Step size added at once",
              logx=False,
              logy=False,
              equality_check=None)
plt.title("Replay Buffer Add Speed")
plt.savefig("ReplayBuffer_add2.png", transparent=True, bbox_inches="tight")
plt.close()

# Fill Buffers
for _ in range(buffer_size):
    o = np.random.rand(obs_shape)  # [0,1)