marta-marta
commited on
Commit
·
bfd79e7
1
Parent(s):
73d009a
Adding type hints to the functions in these scripts
Browse files
app.py
CHANGED
@@ -10,7 +10,8 @@ from Data_Generation.Piecewise_Box_Functions import basic_box_array, forward_sla
|
|
10 |
from Data_Plotting.Plot_TSNE import TSNE_reduction, plot_dimensionality_reduction
|
11 |
########################################################################################################################
|
12 |
# User Inputs
|
13 |
-
image_size = st.slider('Select a value for the image size', min_value=9, max_value=16)
|
|
|
14 |
|
15 |
density_selection = st.slider('Select a value for the number of equally spaced density values (0, 1]', min_value=1, max_value=10)
|
16 |
########################################################################################################################
|
@@ -35,11 +36,10 @@ for i in [1, 2, 3, 4]:
|
|
35 |
st.write("Click 'Generate Samples' to show some density values that would exist in your dataset:")
|
36 |
|
37 |
# Show samples of various density values
|
38 |
-
|
39 |
if st.button('Generate Samples'): # Generate the samples
|
40 |
plt.figure(1)
|
41 |
st.header("Sample Density Figures:")
|
42 |
-
max_figures = min(density_selection, 5)
|
43 |
for i in range(max_figures):
|
44 |
plt.subplot(1, max_figures+1, i+1), plt.imshow(sample_density[i], cmap='gray', vmin=0, vmax=1)
|
45 |
if i != 0: # Show y-label for only first figure
|
@@ -69,22 +69,21 @@ if st.button('Generate Samples'): # Generate the samples
|
|
69 |
# Output Entire Dataset
|
70 |
st.write("Click 'Generate Dataset' to generate the dataset based on the conditions set previously:")
|
71 |
if st.button('Generate Dataset'): # Generate the dataset
|
72 |
-
boxes = make_boxes(image_size, densities)
|
73 |
-
|
|
|
74 |
box_arrays, box_density, basic_box_thickness, forward_slash_box_thickness, back_slash_box_thickness,hot_dog_box_thickness, hamburger_box_thickness\
|
75 |
= list(zip(*boxes))[0], list(zip(*boxes))[1], list(zip(*boxes))[2], list(zip(*boxes))[3], list(zip(*boxes))[4], list(zip(*boxes))[5], list(zip(*boxes))[6]
|
76 |
|
77 |
# Plot TSNE of the data
|
78 |
-
#
|
79 |
-
def flatten_array(array):
|
80 |
return array.flatten()
|
81 |
-
|
82 |
# apply the flatten_array function to each array in the list and create a list of flattened arrays
|
83 |
flattened_arrays = np.array([flatten_array(a) for a in box_arrays])
|
84 |
# calculate the average density for each array
|
85 |
avg_density = np.sum(flattened_arrays, axis=1)/(np.shape(box_arrays[0])[0]*np.shape(box_arrays[0])[1])
|
86 |
|
87 |
-
|
88 |
# Perform the TSNE Reduction
|
89 |
x, y, title, embedding = TSNE_reduction(flattened_arrays)
|
90 |
plt.figure(3)
|
@@ -96,7 +95,7 @@ if st.button('Generate Dataset'): # Generate the dataset
|
|
96 |
plt.figure(3)
|
97 |
st.pyplot(plt.figure(3))
|
98 |
|
99 |
-
|
100 |
class NumpyArrayEncoder(JSONEncoder):
|
101 |
def default(self, obj):
|
102 |
if isinstance(obj, np.ndarray):
|
@@ -104,7 +103,7 @@ if st.button('Generate Dataset'): # Generate the dataset
|
|
104 |
return JSONEncoder.default(self, obj)
|
105 |
|
106 |
# Save the arrays in a JSON format so they can be read
|
107 |
-
box_arrays = [json.dumps(x, cls=NumpyArrayEncoder) for x in box_arrays]
|
108 |
|
109 |
# Create a dataframe to convert the data to a csv file
|
110 |
dataframe = (pd.DataFrame((box_arrays, box_density, basic_box_thickness, forward_slash_box_thickness,
|
|
|
10 |
from Data_Plotting.Plot_TSNE import TSNE_reduction, plot_dimensionality_reduction
|
11 |
########################################################################################################################
|
12 |
# User Inputs
|
13 |
+
image_size = st.slider('Select a value for the image size', min_value=9, max_value=16) # Max value is limited due to
|
14 |
+
# computational limitations of streamlit
|
15 |
|
16 |
density_selection = st.slider('Select a value for the number of equally spaced density values (0, 1]', min_value=1, max_value=10)
|
17 |
########################################################################################################################
|
|
|
36 |
st.write("Click 'Generate Samples' to show some density values that would exist in your dataset:")
|
37 |
|
38 |
# Show samples of various density values
|
|
|
39 |
if st.button('Generate Samples'): # Generate the samples
|
40 |
plt.figure(1)
|
41 |
st.header("Sample Density Figures:")
|
42 |
+
max_figures = min(density_selection, 5) # Determine the number of figures to display
|
43 |
for i in range(max_figures):
|
44 |
plt.subplot(1, max_figures+1, i+1), plt.imshow(sample_density[i], cmap='gray', vmin=0, vmax=1)
|
45 |
if i != 0: # Show y-label for only first figure
|
|
|
69 |
# Output Entire Dataset
|
70 |
st.write("Click 'Generate Dataset' to generate the dataset based on the conditions set previously:")
|
71 |
if st.button('Generate Dataset'): # Generate the dataset
|
72 |
+
boxes = make_boxes(image_size, densities) # Create all the data points
|
73 |
+
|
74 |
+
# Unpack all the data
|
75 |
box_arrays, box_density, basic_box_thickness, forward_slash_box_thickness, back_slash_box_thickness,hot_dog_box_thickness, hamburger_box_thickness\
|
76 |
= list(zip(*boxes))[0], list(zip(*boxes))[1], list(zip(*boxes))[2], list(zip(*boxes))[3], list(zip(*boxes))[4], list(zip(*boxes))[5], list(zip(*boxes))[6]
|
77 |
|
78 |
# Plot TSNE of the data
|
79 |
+
# Determine the labels of the TSNE Plot
|
80 |
+
def flatten_array(array): # define a function to flatten a 2D array
|
81 |
return array.flatten()
|
|
|
82 |
# apply the flatten_array function to each array in the list and create a list of flattened arrays
|
83 |
flattened_arrays = np.array([flatten_array(a) for a in box_arrays])
|
84 |
# calculate the average density for each array
|
85 |
avg_density = np.sum(flattened_arrays, axis=1)/(np.shape(box_arrays[0])[0]*np.shape(box_arrays[0])[1])
|
86 |
|
|
|
87 |
# Perform the TSNE Reduction
|
88 |
x, y, title, embedding = TSNE_reduction(flattened_arrays)
|
89 |
plt.figure(3)
|
|
|
95 |
plt.figure(3)
|
96 |
st.pyplot(plt.figure(3))
|
97 |
|
98 |
+
# Create a class to read the information from the generated CSV file
|
99 |
class NumpyArrayEncoder(JSONEncoder):
|
100 |
def default(self, obj):
|
101 |
if isinstance(obj, np.ndarray):
|
|
|
103 |
return JSONEncoder.default(self, obj)
|
104 |
|
105 |
# Save the arrays in a JSON format so they can be read
|
106 |
+
box_arrays = [json.dumps(x, cls=NumpyArrayEncoder) for x in box_arrays]
|
107 |
|
108 |
# Create a dataframe to convert the data to a csv file
|
109 |
dataframe = (pd.DataFrame((box_arrays, box_density, basic_box_thickness, forward_slash_box_thickness,
|