def __init__(self, logdata=True): # filenames = ['aalborg.csv', 'alpine-1.csv', 'f-speedway.csv', 'data_track_2.csv'] #filenames = ['aalborg.csv', 'alpine-1.csv', 'f-speedway.csv'] filenames = ['forza_urja.csv', 'newdata5.csv', 'aalborg_urja.csv'] #, 'aalborg_urja.csv', 'aalborg_urja_vx80.csv'] #filenames = ['aalborg_new.csv', 'forza_new.csv'] data, labels = helper_functions.readData(filenames) # self.network = do_the_thing(data, labels) learning_rate = 1e-6 #self.network = Network(data, labels, learning_rate) #self.network.train() #torch.save(self.network, 'current_network.pt') self.network = torch.load('current_network_17_WINEF.pt') self.id = random.uniform(0, 1) fh = open("cooperation" + str(self.id) + ".txt", "w") write(str(self.id) + ": 0.0") fh.close() self.set = False self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None
def __init__(self, logdata=True, net=None): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2) ) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None self.counter = 0 # import the neural net that drives the car self.model = simpleNetV2() self.weights = 'simpleNetV2_epoch_3_all_tracks.csv.pkl' self.model.load_state_dict(torch.load(self.weights)) self.input = torch.FloatTensor(D_in) self.track_check1 = False self.track_check2 = False # import the neat neural network to handle the gear config = neat.Config(neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet, neat.DefaultStagnation, 'config-neat') with open('winner-feedforward', 'rb') as f: winner = pickle.load(f) self.net = neat.nn.FeedForwardNetwork.create(winner, config) self.clock = time.time() self.done = False # initialize the fitness with zero self.temp_fitness = 0
def __init__(self, logdata=True): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None # Setup the PyTorch model and load the weights self.model = simpleNetV3() weights = 'simpleNetV3_lr=0.01_epoch_1_all_tracks.csv.pkl' self.model.load_state_dict(torch.load(weights)) # Initialize inputs, counters and history self.input = torch.zeros(D_in) self.crashCounter = 0 self.reverseCounter = 0 self.forwardCounter = 0 self.resetGear = False self.crashed = False self.counter = 0 self.name = '3001' self.history = np.zeros((5, 2), dtype=float) # Initialize SWARM self.pheromones = [] pickle.dump(self.pheromones, open("sent_3001.txt", "wb")) self.straight_begin = 0 self.straight_end = 0 self.list_straight = [] self.list_corner = [] self.received = [] self.list_average_corner = []
def __init__(self, logdata=True): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None
def __init__(self, logdata=True, models=None, explore=0.9, optimizer=None): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None # Algorithm variables self.previous_state = None if os.path.isfile("memory.txt") == True: with open("memory.txt", "rb") as fp: self.replay_memory = pickle.load(fp) else: self.replay_memory = [] # Maximum size of the replay memory self.max_RM_size = 100000 self.model, self.target = models self.criterion = torch.nn.MSELoss() self.model_optim = optimizer self.restart = False # Discretize the action space self.action_space = [ 0.9, 0.7, 0.5, 0.4, 0.3, 0.2, 0.1, 0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.7, -0.9 ] self.action = 0 self.reward = 0 # Model that is used for accelerating and braking self.model_acc_brake = simpleNetV2() self.pheromones = [] # self.receiver = Receiver(6001) weights = 'simpleNetV2_epoch_3_all_tracks.csv.pkl' self.model_acc_brake.load_state_dict(torch.load(weights)) self.input = torch.zeros(D_in) # STATS if os.path.isfile("counter.txt") == True: with open("counter.txt", "rb") as fp: self.counter = pickle.load(fp) else: self.counter = 0 self.counter_per_game = 0 self.train_counter = 0 self.average_reward = 0 self.average_loss = 0 # Hyperparameters self.exploration_rate = explore self.batch_size = 128 self.gamma = 0.99
def __init__(self, logdata=True): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None self.path = [] self.pid_steer = PID(Kp=0.5, Ki=0.0, Kd=1.0, setpoint=0, sample_time=0.02,\ output_limits=(-1.0, 1.0), auto_mode=True, proportional_on_measurement=True)
def __init__(self, logdata=True): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2) ) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None self.model = TwoLayerNet(D_in, hidden_size, hidden_size_2, D_out) self.model.load_state_dict(torch.load('LaurensNet30.pkl'))
def __init__(self, log_data=False, net=None): # self.steering_ctrl = CompositeController(ProportionalController(0.4),IntegrationController(0.2, integral_limit=1.5),DerivativeController(2)) # self.acceleration_ctrl = CompositeController( # ProportionalController(3.7), # ) self.steering_ctrl = CompositeController(ProportionalController(0.4), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if log_data else None self.net = net print("mehmehmeh") self.flag = False
def __init__(self, logdata=True): # filenames = ['aalborg.csv', 'alpine-1.csv', 'f-speedway.csv', 'data_track_2.csv'] #filenames = ['aalborg.csv', 'alpine-1.csv', 'f-speedway.csv'] filenames = ['forza_urja.csv'] #filenames = ['aalborg_new.csv', 'forza_new.csv'] data, labels = helper_functions.readData(filenames) # self.network = do_the_thing(data, labels) learning_rate = 1e-6 self.network = Network(data, labels, learning_rate) self.network.train() torch.save(self.network, 'current_network.pt') self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None
def __init__(self, logdata=True): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2)) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None self.model = simpleNetV2() weights = 'simpleNetV2_epoch_3_all_tracks.csv.pkl' self.model.load_state_dict(torch.load(weights)) self.input = torch.zeros(D_in) self.crashCounter = 0 self.reverseCounter = 0 self.forwardCounter = 0 self.resetGear = False self.crashed = False self.counter = 0 self.name = '3001' # NEAT self.history = np.zeros((5, 2), dtype=float) config = neat.Config(neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet, neat.DefaultStagnation, 'config-neat') with open('winner-feedforward', 'rb') as f: winner = pickle.load(f) self.net = neat.nn.FeedForwardNetwork.create(winner, config) #SWARM self.pheromones = [] pickle.dump(self.pheromones, open("../sent_3001.txt", "wb")) self.straight_begin = 0 self.straight_end = 0 self.list_straight = [] self.list_corner = [] self.received = [] self.list_average_corcer = []
def __init__(self, logdata=True, net=None): self.steering_ctrl = CompositeController( ProportionalController(0.4), IntegrationController(0.2, integral_limit=1.5), DerivativeController(2) ) self.acceleration_ctrl = CompositeController( ProportionalController(3.7), ) self.data_logger = DataLogWriter() if logdata else None self.eta = 20 self.counter = 0 self.model = simpleNetV2() self.weights = 'simpleNetV2_epoch_3_all_tracks.csv.pkl' self.model.load_state_dict(torch.load(self.weights)) self.input = torch.FloatTensor(D_in) self.track_check1 = False self.track_check2 = False self.action_neat = None self.net = net self.clock = time.time() self.done = False self.temp_fitness = 0
def __init__(self,log_data=False, net=None): # self.steering_ctrl = CompositeController(ProportionalController(0.4),IntegrationController(0.2, integral_limit=1.5),DerivativeController(2)) # self.acceleration_ctrl = CompositeController( # ProportionalController(3.7), # ) # json_file = open('model.json', 'r') # loaded_model_json = json_file.read() # json_file.close() # loaded_model = model_from_json(loaded_model_json) # loaded_model.compile(loss='mean_squared_error', optimizer='rmsprop', metrics=['accuracy']) # # load weights into new model # self.loaded_model=loaded_model.load_weights("model.h5") # print("Loaded model from disk") # self.steering_ctrl = CompositeController( # ProportionalController(0.4), # DerivativeController(1) # ) # self.acceleration_ctrl = CompositeController( # ProportionalController(3.7), # ) self.data_logger = DataLogWriter() if log_data else None self.net=net print("mehmehmeh") self.flag=False