In [29]:
import matplotlib.pyplot as plt
import numpy as np
import torch


N = 100000
X = torch.rand(N)
# print('X', X)
plt.hist(X.tolist(), bins=200)
plt.show()



In [31]:
plt.hist(X.log().tolist(), bins=200)
plt.show()
print(X.log().min(), X.log().max())


-12.495938301086426 -1.1920928955078125e-07

In [56]:
gumbel = - (- X.log()).log()
plt.hist(gumbel.tolist(), bins=200)
plt.show()
print(gumbel.min(), gumbel.max())


-2.5254037380218506 15.942384719848633

In [59]:
def run():
    X = torch.arange(-10, 10, 20 / 100)
    gumbel_cdf = (-(-X).exp()).exp()
    plt.plot(X.tolist(), gumbel_cdf.tolist())
    plt.show()

    gumbel_pdf = (-(-(X + 20/100)).exp()).exp() - (-(-(X + 0)).exp()).exp()
    plt.plot(X.tolist(), gumbel_pdf.tolist())
    plt.show()

    gumbel_pdf2 = (- X - (-X).exp()).exp()
    plt.plot(X.tolist(), gumbel_pdf2.tolist())
    plt.show()
run()



In [55]:
def run():
    x_s = []
    y_s = []
    for i in range(0, -100, -10):
        x = np.power(10, float(i))
        x_s.append(x)
        y_s.append(np.log(x))
        print('x', x, np.log(x))

    X = torch.arange(0, 1.0, 1.0 / 50)
    plt.plot(X.tolist(), (- X.log()).tolist())
    plt.show()

    plt.plot(X.tolist(), (- (- X.log()).log()).tolist())
    plt.show()

#     print('X', X)
#     plt.plot(x_s, y_s)
#     plt.ylim([-15, 0])
#     plt.show()
    #     print(np.log(0.00000000000000000000000001))
    # print(np.log(0))

run()


x 1.0 0.0
x 1e-10 -23.0258509299
x 1e-20 -46.0517018599
x 1e-30 -69.0775527898
x 1e-40 -92.1034037198
x 1e-50 -115.12925465
x 1e-60 -138.15510558
x 1e-70 -161.18095651
x 1e-80 -184.20680744
x 1e-90 -207.232658369