Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -37,16 +37,14 @@ class GeneticAlgorithm:
|
|
37 |
def selection(self):
|
38 |
X_train, X_test, y_train, y_test = generate_dataset(self.task_id)
|
39 |
fitness = []
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
print("Fitness list is empty. Cannot select individuals.")
|
49 |
-
|
50 |
def crossover(self):
|
51 |
offspring = []
|
52 |
X = np.random.rand(1, 10) # dummy input to build the layers
|
@@ -100,12 +98,12 @@ if st.button("Run evolution"):
|
|
100 |
X_train, X_test, y_train, y_test = generate_dataset(task_id)
|
101 |
accuracy = []
|
102 |
for net in ga.population:
|
103 |
-
|
104 |
net.fit(X_train, y_train, epochs=10, verbose=0)
|
105 |
loss, acc = net.evaluate(X_test, y_test, verbose=0)
|
106 |
accuracy.append(acc)
|
107 |
final_accuracy.append(np.mean(accuracy))
|
108 |
-
|
109 |
|
110 |
# Trade populations between tasks
|
111 |
for i in range(num_tasks):
|
|
|
37 |
def selection(self):
|
38 |
X_train, X_test, y_train, y_test = generate_dataset(self.task_id)
|
39 |
fitness = []
|
40 |
+
for i, net in enumerate(self.population):
|
41 |
+
net.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
|
42 |
+
net.fit(X_train, y_train, epochs=10, verbose=0)
|
43 |
+
loss, accuracy = net.evaluate(X_test, y_test, verbose=0)
|
44 |
+
fitness.append(accuracy)
|
45 |
+
if len(fitness) > 0:
|
46 |
+
self.population = [self.population[i] for i in np.argsort(fitness)[-self.population_size//2:]]
|
47 |
+
|
|
|
|
|
48 |
def crossover(self):
|
49 |
offspring = []
|
50 |
X = np.random.rand(1, 10) # dummy input to build the layers
|
|
|
98 |
X_train, X_test, y_train, y_test = generate_dataset(task_id)
|
99 |
accuracy = []
|
100 |
for net in ga.population:
|
101 |
+
net.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
|
102 |
net.fit(X_train, y_train, epochs=10, verbose=0)
|
103 |
loss, acc = net.evaluate(X_test, y_test, verbose=0)
|
104 |
accuracy.append(acc)
|
105 |
final_accuracy.append(np.mean(accuracy))
|
106 |
+
st.write(f"Final accuracy: {np.mean(final_accuracy)}")
|
107 |
|
108 |
# Trade populations between tasks
|
109 |
for i in range(num_tasks):
|