Open bjuergens opened 3 years ago
here some general steps, that I think may work towards this issue
train.py
with if __name__ == "__main__":
should be moved to experiment.py. a minimal example to start an experiment could look something like this:
import NeuroEvolution-CTRNN
import gym
class myEnv(gym.Env):
pass
experiment = NeuroEvolution-CTRNN.Experiment(population_size = 1000, generations = 200, env=myEnv)
experiment.start()
print("best score: " +str(experiment.log.max("fitness"))
also I think we should make sure we can handle plugins from the user. The user should be able to create custom brains, custom envs, custom optimizers and custom episode runners. I think custom brains and envs already works (albeit the definition of them is a little bit clunky at the moment).
@DanielZim reminder: you wanted to use a more object-oriented way to initialize experiment. Instead of passing configurations to the experiment, we could pass configurated objects for the brains, envs or optimizers. Also I noted, that for passing brains, we also had a related issue: #34
long term goal: it should be easy to use this framework for others.
Currently this issue is not for specific implementation and instead for discussion about general ideas how to achieve that long term goal.
Most important question (from me):
Also: I think we should rename this project. I think the name
NeuroEvolution-CTRNN_new
doesn't fit this project anymore