Skip to content

Instantly share code, notes, and snippets.

@daanklijn
Created January 11, 2021 14:44
Show Gist options
  • Save daanklijn/4eea0cb5247ef299aa16951a6133b318 to your computer and use it in GitHub Desktop.
Save daanklijn/4eea0cb5247ef299aa16951a6133b318 to your computer and use it in GitHub Desktop.
worker.py
@ray.remote
class Worker:
def __init__(self,
config,
env_creator):
self.maximum_timesteps = config['max_timesteps_per_episode']
self.mutation_power = config['mutation_power']
self.model = AtariModel()
self.env = env_creator({})
def evaluate(self, weights, mutate, record):
if weights:
self.model.set_weights(weights)
if mutate:
self.model.mutate(self.mutation_power)
obs = self.env.reset()
rewards = []
for ts in range(self.maximum_timesteps):
action = self.model.determine_actions(np.array([obs]))
obs, reward, done, info = self.env.step(action)
rewards += [reward]
if done:
break
return {
'total_reward': sum(rewards),
'timesteps_total': ts,
'weights': self.model.get_weights(),
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment