Spaces:
Running
Running
import numpy as np | |
import matplotlib.pyplot as plt | |
def generate_points(initial_value, final_value, smoothness=0.1, max_num = 200): | |
x = np.array([_ for _ in range(max_num)]) | |
y = initial_value + ( final_value-initial_value) * (x/200)**smoothness | |
noise = np.random.normal(0, 0.01, max_num) | |
y += noise | |
return x, y | |
def generate_line_plots(data, num_curves, legends, x_label, y_label, save_to = "fig.png" ): | |
plt.figure() | |
for i in range(num_curves): | |
x, y = data[i] | |
plt.plot(x , y, label=legends[i]) | |
plt.xlabel(x_label) | |
plt.ylabel(y_label) | |
plt.legend() | |
plt.savefig(save_to) | |
def generate_random_figures(list_of_methods, save_to = "fig.png" ): | |
num_curves = len(list_of_methods) + 1 | |
ini_value = [np.random.uniform(1, 2)] * num_curves | |
final_value = sorted([0.1 + np.random.normal(0,0.1) for _ in range(num_curves)]) | |
legends = ["Ours"] + list_of_methods | |
x_label = "# of Epochs" | |
y_label = "Loss" | |
all_data = [] | |
for i in range(num_curves): | |
all_data.append(generate_points(ini_value[i], final_value[i])) | |
generate_line_plots(all_data, num_curves, legends, x_label, y_label, save_to) | |
if __name__ == "__main__": | |
num_curves = 3 | |
legends = ["method 1", "method 2"] | |
x_label = "# of epochs" | |
y_label = "loss" | |
ini_value = [1.5, 1.5, 1.5] | |
final_value = [0.01, 0.05, 0.10] | |
generate_random_figures(legends, save_to="fig1.png") | |
generate_random_figures(legends, save_to="fig2.png") | |