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
|
return state.pop_nodes, state.pop_conns
|
||||||
|
|
||||||
def update_species(self, state, fitness):
|
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
|
# update the fitness of each species
|
||||||
state, species_fitness = self.update_species_fitness(state, fitness)
|
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
|
output_transform=Act.sigmoid, # the activation function for output node
|
||||||
mutation=DefaultMutation(
|
mutation=DefaultMutation(
|
||||||
node_add=0.05,
|
node_add=0.1,
|
||||||
conn_add=0.05,
|
conn_add=0.1,
|
||||||
node_delete=0.05,
|
node_delete=0.1,
|
||||||
conn_delete=0.05,
|
conn_delete=0.1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
pop_size=1000,
|
pop_size=1000,
|
||||||
|
|||||||
@@ -116,6 +116,9 @@ class Pipeline:
|
|||||||
state, keys, self.algorithm.forward, pop_transformed
|
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)
|
state = self.algorithm.tell(state, fitnesses)
|
||||||
|
|
||||||
return state.update(randkey=randkey), fitnesses
|
return state.update(randkey=randkey), fitnesses
|
||||||
@@ -149,7 +152,7 @@ class Pipeline:
|
|||||||
|
|
||||||
def analysis(self, state, pop, fitnesses):
|
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_f, min_f, mean_f, std_f = (
|
||||||
max(valid_fitnesses),
|
max(valid_fitnesses),
|
||||||
|
|||||||
Reference in New Issue
Block a user