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())
In [56]:
gumbel = - (- X.log()).log()
plt.hist(gumbel.tolist(), bins=200)
plt.show()
print(gumbel.min(), gumbel.max())
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()