def __init__(self, config, policy_params, env_creator, noise, min_task_runtime=0.2): self.min_task_runtime = min_task_runtime self.config = config self.policy_params = policy_params self.noise = SharedNoiseTable(noise) self.env = env_creator() self.preprocessor = ModelCatalog.get_preprocessor( self.env.spec.id, self.env.observation_space.shape) self.preprocessor_shape = self.preprocessor.transform_shape( self.env.observation_space.shape) self.sess = utils.make_session(single_threaded=True) self.policy = policies.GenericPolicy(self.env.observation_space, self.env.action_space, self.preprocessor, **policy_params) tf_util.initialize() self.rs = np.random.RandomState() assert (self.policy.needs_ob_stat == (self.config["calc_obstat_prob"] != 0))
def _init(self): policy_params = {"ac_noise_std": 0.01} env = self.env_creator() preprocessor = ModelCatalog.get_preprocessor( env.spec.id, env.observation_space.shape) preprocessor_shape = preprocessor.transform_shape( env.observation_space.shape) self.sess = utils.make_session(single_threaded=False) self.policy = policies.GenericPolicy(env.observation_space, env.action_space, preprocessor, **policy_params) tf_util.initialize() self.optimizer = optimizers.Adam(self.policy, self.config["stepsize"]) self.ob_stat = utils.RunningStat(preprocessor_shape, eps=1e-2) # Create the shared noise table. print("Creating shared noise table.") noise_id = create_shared_noise.remote() self.noise = SharedNoiseTable(ray.get(noise_id)) # Create the actors. print("Creating actors.") self.workers = [ Worker.remote(self.config, policy_params, self.env_creator, noise_id) for _ in range(self.config["num_workers"]) ] self.episodes_so_far = 0 self.timesteps_so_far = 0 self.tstart = time.time()