fix bug for record the best genome.
This commit is contained in:
@@ -113,9 +113,6 @@ class DefaultSpecies(BaseSpecies):
|
||||
return state.pop_nodes, state.pop_conns
|
||||
|
||||
def update_species(self, state, fitness):
|
||||
# set nan to -inf
|
||||
fitness = jnp.where(jnp.isnan(fitness), -jnp.inf, fitness)
|
||||
|
||||
# update the fitness of each species
|
||||
state, species_fitness = self.update_species_fitness(state, fitness)
|
||||
|
||||
|
||||
@@ -19,10 +19,10 @@ if __name__ == "__main__":
|
||||
),
|
||||
output_transform=Act.sigmoid, # the activation function for output node
|
||||
mutation=DefaultMutation(
|
||||
node_add=0.05,
|
||||
conn_add=0.05,
|
||||
node_delete=0.05,
|
||||
conn_delete=0.05,
|
||||
node_add=0.1,
|
||||
conn_add=0.1,
|
||||
node_delete=0.1,
|
||||
conn_delete=0.1,
|
||||
),
|
||||
),
|
||||
pop_size=1000,
|
||||
|
||||
@@ -116,6 +116,9 @@ class Pipeline:
|
||||
state, keys, self.algorithm.forward, pop_transformed
|
||||
)
|
||||
|
||||
# replace nan with -inf
|
||||
fitnesses = jnp.where(jnp.isnan(fitnesses), -jnp.inf, fitnesses)
|
||||
|
||||
state = self.algorithm.tell(state, fitnesses)
|
||||
|
||||
return state.update(randkey=randkey), fitnesses
|
||||
@@ -149,7 +152,7 @@ class Pipeline:
|
||||
|
||||
def analysis(self, state, pop, fitnesses):
|
||||
|
||||
valid_fitnesses = fitnesses[~np.isnan(fitnesses)]
|
||||
valid_fitnesses = fitnesses[~np.isinf(fitnesses)]
|
||||
|
||||
max_f, min_f, mean_f, std_f = (
|
||||
max(valid_fitnesses),
|
||||
|
||||
Reference in New Issue
Block a user