def load(self): self.model = NeuralNetwork() self.model.load('car_model.dat') self.step = 0 self.max_step = 0 self.training_group = [] self.best_traning = [] RaceGame.__init__(self)
def start(self): self.len_delta = len(self.delta_angle) self.nn_nodes = [5, 8, 5, self.len_delta] self.model = NeuralNetwork(self.nn_nodes) self.step = 0 self.max_step = 0 self.training_group = [] self.best_traning = [] RaceGame.__init__(self)
def update(self): RaceGame.update(self) if self.is_broken: self.training_car() self.car.restart() self.training_group = [] self.step = 0 else: input = self.collision_sight + [self.car.angle] id_output = self.model.train(input) self.training_group.append((input, id_output)) self.step += 1 if self.step == 300: self.model.save('car_model.dat') self.car.update(delta_angle=self.delta_angle[id_output])
def update(self): RaceGame.update(self) self.step_record[self.model_id] += 1 if self.is_broken: self.model_id += 1 if self.model_id == len(self.chromosome_weight): self.evaluation() self.selection() self.crossover() self.mutation() self.step_record = [0] * len(self.chromosome_weight) self.model_id = 0 self.model = self.get_model(self.chromosome_weight[self.model_id]) self.car.restart() else: self.car.update(delta_angle=self.get_angle(self.collision_sight + [self.car.angle]))
def __init__(self): self.delta_angle = [-0.03, -0.02, -0.01, 0, 0.01, 0.02, 0.03] self.nn_nodes = [5, 7] self.start() RaceGame.__init__(self)
def __init__(self): self.delta_angle = [-0.03, -0.02, -0.01, 0, 0.01, 0.02, 0.03] self.nn_nodes = [5, 8, 5, 7] self.start() RaceGame.__init__(self)