Spaces:
Sleeping
Sleeping
import matplotlib.pyplot as plt | |
import numpy as np | |
def plot_benchmark_surface(benchmark, paths, optimizer_names): | |
fig = plt.figure(figsize=(10, 8)) | |
ax = fig.add_subplot(111, projection='3d') | |
x = np.linspace(-5, 5, 100) | |
y = np.linspace(-5, 5, 100) | |
X, Y = np.meshgrid(x, y) | |
Z = np.array([[benchmark.f(np.array([xi, yi])) for xi in x] for yi in y]) | |
ax.plot_surface(X, Y, Z, cmap='viridis', alpha=0.5) | |
for path, name in zip(paths, optimizer_names): | |
ax.plot(path[:, 0], path[:, 1], [benchmark.f(p) for p in path], label=name) | |
ax.set_xlabel('X') | |
ax.set_ylabel('Y') | |
ax.set_zlabel('Loss') | |
ax.legend() | |
plt.close() | |
return fig | |
def plot_ml_curves(train_data, val_data, optimizer_names, metric='Accuracy'): | |
fig = plt.figure(figsize=(10, 6)) | |
for t, v, name in zip(train_data, val_data, optimizer_names): | |
epochs = range(1, len(t) + 1) | |
plt.plot(epochs, t, label=f'{name} Train') | |
plt.plot(epochs, v, '--', label=f'{name} Val') | |
plt.xlabel('Epoch') | |
plt.ylabel(metric) | |
plt.title(f'{metric} vs Epoch') | |
plt.legend() | |
plt.grid(True) | |
plt.close() | |
return fig |