def __init__(self, state_size, action_size): self.t = 0 self.max_Q = 0 self.train = True self.lane_detection = False # Set to True to train on images with segmented lane lines # Get size of state and action self.state_size = state_size self.action_size = action_size # These are hyper parameters for the DQN self.discount_factor = 0.99 self.learning_rate = 1e-4 if (self.train): self.epsilon = 1.0 self.initial_epsilon = 1.0 else: self.epsilon = 1e-6 self.initial_epsilon = 1e-6 self.epsilon_min = 0.02 self.batch_size = 64 self.train_start = 100 self.explore = 10000 # Create replay memory using deque self.memory = deque(maxlen=100000) self.vae_used = False if self.vae_used: vae_path = 'vae-level-0-dim-32.pkl' # assert vae_path == None , "Missing weight file for vae" self.vae = load_vae(vae_path) # Create main model and target model self.model = self.build_model() self.target_model = self.build_model() # Copy the model to target model # --> initialize the target model so that the parameters of model & target model to be same self.update_target_model()
'{}_{}'.format(ENV_ID, args.exp_id)) else: log_path = os.path.join(folder, algo) model_path = "{}/{}.pkl".format(log_path, ENV_ID) assert os.path.isdir(log_path), "The {} folder was not found".format( log_path) assert os.path.isfile( model_path), "No model found for {} on {}, path: {}".format( algo, ENV_ID, model_path) model = ALGOS[algo].load(model_path) if args.vae_path != '': print("Loading VAE ...") vae = load_vae(args.vae_path) if vae is None: N_COMMAND_HISTORY = 0 env = DonkeyVAEEnv(level=LEVEL, frame_skip=TEST_FRAME_SKIP, vae=vae, const_throttle=None, min_throttle=MIN_THROTTLE, max_throttle=MAX_THROTTLE, max_cte_error=10, n_command_history=N_COMMAND_HISTORY) env = Recorder(env, folder=args.record_folder, verbose=1) try: env = TeleopEnv(env, model=model)
args = parser.parse_args() set_global_seeds(args.seed) if args.trained_agent != "": assert args.trained_agent.endswith('.pkl') and os.path.isfile(args.trained_agent), \ "The trained_agent must be a valid path to a .pkl file" tensorboard_log = None if args.tensorboard_log == '' else args.tensorboard_log + '/' + ENV_ID print("=" * 10, ENV_ID, args.algo, "=" * 10) vae = None if args.vae_path != '': print("Loading VAE ...") vae = load_vae(args.vae_path) elif args.random_features: print("Randomly initialized VAE") vae = load_vae(z_size=Z_SIZE) # Save network args.save_vae = True else: print("Learning from pixels...") # Load hyperparameters from yaml file with open('hyperparams/{}.yml'.format(args.algo), 'r') as f: hyperparams = yaml.load(f, Loader=yaml.UnsafeLoader)[BASE_ENV] hyperparams['seed'] = args.seed # Sort hyperparams that will be saved saved_hyperparams = OrderedDict([(key, hyperparams[key])
args = parser.parse_args() set_global_seeds(args.seed) if args.trained_agent != "": assert args.trained_agent.endswith('.pkl') and os.path.isfile(args.trained_agent), \ "The trained_agent must be a valid path to a .pkl file" tensorboard_log = None if args.tensorboard_log == '' else os.path.join(args.tensorboard_log, ID_ENV) print("=" * 10, ID_ENV, args.algo, "=" * 10) vae = None if args.vae_path != '': print("Loading VAE ...") vae = load_vae(args.vae_path, input_dimension=(IMAGE_HEIGHT, IMAGE_WIDTH, 3)) elif args.random_features: print("Randomly initialized VAE") vae = load_vae(z_size=Z_SIZE) # Save network args.save_vae = True else: print("Learning from pixels...") # Load hyperparameters from yaml file with open('hyperparams/{}.yml'.format(args.algo), 'r') as f: hyperparams = yaml.load(f)[args.name_env] # wyb # Sort hyperparams that will be saved saved_hyperparams = OrderedDict([(key, hyperparams[key]) for key in sorted(hyperparams.keys())]) # save vae path