Spaces:
Runtime error
Runtime error
from init import * | |
import numpy as np | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
import os | |
from PIL import Image | |
import matplotlib.animation as animation | |
from matplotlib.animation import FuncAnimation | |
from IPython.display import clear_output | |
from autograd.core.engine import Value | |
from sklearn.datasets import make_moons, make_blobs | |
import plotly.graph_objects as go | |
import plotly.io as pio | |
import imageio | |
clear_output() | |
# Iterate through the first 6 images | |
def extract_path_df(path_dir, index_show): | |
path_file = [] | |
for filesname in os.listdir(path_dir): | |
path_file.append(os.path.join(path_dir,filesname)) | |
for data_df in range(0,len(path_file)): | |
data_frame = pd.read_csv(path_file[data_df]) | |
show_df = data_frame.head(index_show) | |
return path_file , f"dataframe: {show_df}" | |
def loading_df_to_numpy(path_file): | |
data_df = pd.read_csv(path_file) | |
data = np.array(data_df) | |
m, n = data.shape | |
data_train = data[1000:m].T | |
Y_train = data_train[0][40900:] | |
X_train = data_train[1:n][:, 40900:] | |
# Manually split the data into training and testing sets | |
split_index = int(X_train.shape[0] * 0.8) # 80% for training, 20% for testing | |
X_train_split = X_train[:, :10] | |
Y_train_split = Y_train[:10] | |
X_test_split = X_train[:,:5] | |
Y_test_split = Y_train[:5] | |
return X_train_split, X_test_split, Y_train_split, Y_test_split | |
def initialize_data(n_samples: int, noise: float): | |
input_data, Target = make_moons(n_samples=n_samples, noise=noise) | |
Target = Target * 2 - 1 # make y be -1 or 14 | |
# fig.close() | |
return input_data, Target | |
def plot_sample(DATA_TRAIN,DATA_LABEL): | |
num_images = min(6, DATA_TRAIN.shape[1]) | |
fig, axs = plt.subplots(2, 3, figsize=(10, 7)) | |
for i in range(num_images): | |
label = DATA_LABEL | |
image = DATA_TRAIN[:, i] | |
current_image = image.reshape(28, 28) * 255 | |
# Determine the subplot coordinates | |
row = i // 3 | |
col = i % 3 | |
# Plot the image in the corresponding subplot | |
axs[row, col].imshow(current_image, cmap='gray') | |
axs[row, col].set_title("Label: {}".format(label)) | |
axs[row, col].axis('off') | |
plt.tight_layout() | |
plt.savefig("sample.png") | |
def copy(model): | |
model = SparseMLP(nin=2, nouts=[16, 16, 1], sparsities=[0.,0.9,0.8]) | |
model.parameters() | |
return model | |
def Zvals(model , X_train): | |
global X | |
h = 0.25 | |
x_min, x_max = X_train[:, 0].min() - 1, X_train[:, 0].max() + 1 | |
y_min, y_max = X_train[:, 1].min() - 1, X_train[:, 1].max() + 1 | |
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), | |
np.arange(y_min, y_max, h)) | |
Xmesh = np.c_[xx.ravel(), yy.ravel()] | |
inputs = [list(map(Value, xrow)) for xrow in Xmesh] | |
scores = list(map(model, inputs)) | |
Z = np.array([s.data > 0 for s in scores]) | |
Z = Z.reshape(xx.shape) | |
return Z | |
def dboundary(model): | |
global X | |
global Y | |
h = 0.25 | |
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 | |
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 | |
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), | |
np.arange(y_min, y_max, h)) | |
Xmesh = np.c_[xx.ravel(), yy.ravel()] | |
fig, ax = plt.subplots(figsize=(8,8)) | |
Z = Zvals(model) | |
ln = ax.contourf(xx, yy, Z, cmap=plt.cm.Spectral, alpha=0.8) | |
ax.scatter(X[:, 0], X[:, 1], c=Y, s=40, cmap=plt.cm.Spectral) | |
ax.set_xlim(xx.min(), xx.max()) | |
ax.set_ylim(yy.min(), yy.max()) | |
return fig,ax,ln | |
def graph_trace(Path, nframes, interval): | |
animation_frames = [] | |
# Load the first image to get its dimensions and color mode | |
first_frame_path = f"assets/{Path}_0.png" | |
first_image = Image.open(first_frame_path) | |
width, height = first_image.size | |
color_mode = first_image.mode | |
# Resize and convert all the images to the same dimensions and color mode | |
resized_width = 900 # Set your desired width | |
resized_height = 700 # Set your desired height | |
for i in range(nframes): | |
frame_path = f"assets/{Path}_{i}.png" | |
image = Image.open(frame_path) | |
resized_image = image.resize((resized_width, resized_height)).convert(color_mode) | |
animation_frames.append(resized_image) | |
animation_path = "out/Graph.mp4" | |
imageio.mimsave(animation_path, animation_frames, format="mp4") | |