diff --git a/master.py b/master.py index 7c02c10..af69105 100644 --- a/master.py +++ b/master.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/__init__.py b/poet_distributed/__init__.py index 3667b7e..355909d 100644 --- a/poet_distributed/__init__.py +++ b/poet_distributed/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/es.py b/poet_distributed/es.py index aa57bea..531d5af 100644 --- a/poet_distributed/es.py +++ b/poet_distributed/es.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -393,7 +393,7 @@ def delete_env(self, env_name): logger.debug('Optimizer {} delete env {}...'.format(self.optim_id, env_name)) niches = self.fiber_shared["niches"] - niches[optim_id].delete_env(env_name) + niches[self.optim_id].delete_env(env_name) def start_chunk_fiber(self, runner, batches_per_chunk, batch_size, *args): logger.debug('Optimizer {} spawning {} batches of size {}'.format( diff --git a/poet_distributed/logger.py b/poet_distributed/logger.py index e79d73f..4317606 100644 --- a/poet_distributed/logger.py +++ b/poet_distributed/logger.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/niches/__init__.py b/poet_distributed/niches/__init__.py index d3767fd..9022532 100644 --- a/poet_distributed/niches/__init__.py +++ b/poet_distributed/niches/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/niches/box2d/__init__.py b/poet_distributed/niches/box2d/__init__.py index 1488b2b..386b6ef 100644 --- a/poet_distributed/niches/box2d/__init__.py +++ b/poet_distributed/niches/box2d/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/niches/box2d/bipedal_walker_custom.py b/poet_distributed/niches/box2d/bipedal_walker_custom.py index 9640b22..cd98221 100644 --- a/poet_distributed/niches/box2d/bipedal_walker_custom.py +++ b/poet_distributed/niches/box2d/bipedal_walker_custom.py @@ -1,6 +1,6 @@ # The following code is modified from openai/gym (https://github.com/openai/gym) under the MIT License. -# Modifications Copyright (c) 2019 Uber Technologies, Inc. +# Modifications Copyright (c) 2020 Uber Technologies, Inc. import sys @@ -169,18 +169,19 @@ def set_env_config(self, env_config): def _set_terrain_number(self): self.hardcore = False self.GRASS = 0 - self.STUMP, self.STAIRS, self.PIT = -1, -1, -1 +# self.STUMP, self.STAIRS, self.PIT = -1, -1, -1 + self.PIT = -1, self._STATES_ = 1 - if self.config.stump_width and self.config.stump_height and self.config.stump_float: - # STUMP exist - self.STUMP = self._STATES_ - self._STATES_ += 1 + # if self.config.stump_width and self.config.stump_height and self.config.stump_float: + # # STUMP exist + # self.STUMP = self._STATES_ + # self._STATES_ += 1 - if self.config.stair_height and self.config.stair_width and self.config.stair_steps: - # STAIRS exist - self.STAIRS = self._STATES_ - self._STATES_ += 1 + # if self.config.stair_height and self.config.stair_width and self.config.stair_steps: + # # STAIRS exist + # self.STAIRS = self._STATES_ + # self._STATES_ += 1 if self.config.pit_gap: # PIT exist @@ -280,61 +281,61 @@ def _generate_terrain(self, hardcore): self.terrain_x[-1] = self.terrain_x[-1] - pit_diff * TERRAIN_STEP pit_diff = 0 - elif state == self.STUMP and oneshot: - # input parameter stump_width, stump_height, stump_float - #stump_width = self.np_random.uniform(*self.config.stump_width) - stump_width = self.np_random.randint(*self.config.stump_width) - stump_height = self.np_random.uniform( - *self.config.stump_height) - stump_float = self.np_random.randint(*self.config.stump_float) - #counter = np.ceil(stump_width) - counter = stump_width - countery = stump_height - poly = [ - (x, y + stump_float * TERRAIN_STEP), - (x + stump_width * TERRAIN_STEP, y + stump_float * TERRAIN_STEP), - (x + stump_width * TERRAIN_STEP, y + countery * - TERRAIN_STEP + stump_float * TERRAIN_STEP), - (x, y + countery * - TERRAIN_STEP + stump_float * TERRAIN_STEP), - ] - self.fd_polygon.shape.vertices = poly - t = self.world.CreateStaticBody( - fixtures=self.fd_polygon) - t.color1, t.color2 = (1, 1, 1), (0.6, 0.6, 0.6) - self.terrain.append(t) - - elif state == self.STAIRS and oneshot: - # input parameters: stair_height, stair_width, stair_steps - stair_height = self.np_random.uniform( - *self.config.stair_height) - stair_slope = 1 if self.np_random.rand() > 0.5 else -1 - stair_width = self.np_random.randint(*self.config.stair_width) - stair_steps = self.np_random.randint(*self.config.stair_steps) - original_y = y - for s in range(stair_steps): - poly = [ - (x + (s * stair_width) * TERRAIN_STEP, y + - (s * stair_height * stair_slope) * TERRAIN_STEP), - (x + ((1 + s) * stair_width) * TERRAIN_STEP, y + - (s * stair_height * stair_slope) * TERRAIN_STEP), - (x + ((1 + s) * stair_width) * TERRAIN_STEP, y + - (-stair_height + s * stair_height * stair_slope) * TERRAIN_STEP), - (x + (s * stair_width) * TERRAIN_STEP, y + (-stair_height + - s * stair_height * stair_slope) * TERRAIN_STEP), - ] - self.fd_polygon.shape.vertices = poly - t = self.world.CreateStaticBody( - fixtures=self.fd_polygon) - t.color1, t.color2 = (1, 1, 1), (0.6, 0.6, 0.6) - self.terrain.append(t) - counter = stair_steps * stair_width + 1 - - elif state == self.STAIRS and not oneshot: - s = stair_steps * stair_width - counter - n = s // stair_width - y = original_y + (n * stair_height * stair_slope) * TERRAIN_STEP - \ - (stair_height if stair_slope == -1 else 0) * TERRAIN_STEP + # elif state == self.STUMP and oneshot: + # # input parameter stump_width, stump_height, stump_float + # #stump_width = self.np_random.uniform(*self.config.stump_width) + # stump_width = self.np_random.randint(*self.config.stump_width) + # stump_height = self.np_random.uniform( + # *self.config.stump_height) + # stump_float = self.np_random.randint(*self.config.stump_float) + # #counter = np.ceil(stump_width) + # counter = stump_width + # countery = stump_height + # poly = [ + # (x, y + stump_float * TERRAIN_STEP), + # (x + stump_width * TERRAIN_STEP, y + stump_float * TERRAIN_STEP), + # (x + stump_width * TERRAIN_STEP, y + countery * + # TERRAIN_STEP + stump_float * TERRAIN_STEP), + # (x, y + countery * + # TERRAIN_STEP + stump_float * TERRAIN_STEP), + # ] + # self.fd_polygon.shape.vertices = poly + # t = self.world.CreateStaticBody( + # fixtures=self.fd_polygon) + # t.color1, t.color2 = (1, 1, 1), (0.6, 0.6, 0.6) + # self.terrain.append(t) + + # elif state == self.STAIRS and oneshot: + # # input parameters: stair_height, stair_width, stair_steps + # stair_height = self.np_random.uniform( + # *self.config.stair_height) + # stair_slope = 1 if self.np_random.rand() > 0.5 else -1 + # stair_width = self.np_random.randint(*self.config.stair_width) + # stair_steps = self.np_random.randint(*self.config.stair_steps) + # original_y = y + # for s in range(stair_steps): + # poly = [ + # (x + (s * stair_width) * TERRAIN_STEP, y + + # (s * stair_height * stair_slope) * TERRAIN_STEP), + # (x + ((1 + s) * stair_width) * TERRAIN_STEP, y + + # (s * stair_height * stair_slope) * TERRAIN_STEP), + # (x + ((1 + s) * stair_width) * TERRAIN_STEP, y + + # (-stair_height + s * stair_height * stair_slope) * TERRAIN_STEP), + # (x + (s * stair_width) * TERRAIN_STEP, y + (-stair_height + + # s * stair_height * stair_slope) * TERRAIN_STEP), + # ] + # self.fd_polygon.shape.vertices = poly + # t = self.world.CreateStaticBody( + # fixtures=self.fd_polygon) + # t.color1, t.color2 = (1, 1, 1), (0.6, 0.6, 0.6) + # self.terrain.append(t) + # counter = stair_steps * stair_width + 1 + + # elif state == self.STAIRS and not oneshot: + # s = stair_steps * stair_width - counter + # n = s // stair_width + # y = original_y + (n * stair_height * stair_slope) * TERRAIN_STEP - \ + # (stair_height if stair_slope == -1 else 0) * TERRAIN_STEP oneshot = False self.terrain_y.append(y) diff --git a/poet_distributed/niches/box2d/box2d.py b/poet_distributed/niches/box2d/box2d.py index b351b2b..ed1696c 100644 --- a/poet_distributed/niches/box2d/box2d.py +++ b/poet_distributed/niches/box2d/box2d.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,12 +22,13 @@ name='default_env', ground_roughness=0, pit_gap=[], - stump_width=[], - stump_height=[], - stump_float=[], - stair_height=[], - stair_width=[], - stair_steps=[]) + stump_width = [], + stump_height = [], + stump_float = [], + stair_height = [], + stair_width = [], + stair_steps = [] + ) class Box2DNiche(Niche): def __init__(self, env_configs, seed, init='random', stochastic=False): diff --git a/poet_distributed/niches/box2d/env.py b/poet_distributed/niches/box2d/env.py index 5774bd9..91e8160 100644 --- a/poet_distributed/niches/box2d/env.py +++ b/poet_distributed/niches/box2d/env.py @@ -1,6 +1,6 @@ # The following code is modified from hardmaru/estool (https://github.com/hardmaru/estool/) under the MIT License. -# Modifications Copyright (c) 2019 Uber Technologies, Inc. +# Modifications Copyright (c) 2020 Uber Technologies, Inc. from collections import namedtuple @@ -39,7 +39,7 @@ def make_env(env_name, seed, render_mode=False, env_config=None): input_size=24, output_size=4, time_factor=0, - layers=[40, 40], + layers=[30, 30], activation='tanh', noise_bias=0.0, output_noise=[False, False, False], diff --git a/poet_distributed/niches/box2d/model.py b/poet_distributed/niches/box2d/model.py index 82b7eae..7b2d272 100644 --- a/poet_distributed/niches/box2d/model.py +++ b/poet_distributed/niches/box2d/model.py @@ -1,6 +1,6 @@ # The following code is modified from hardmaru/estool (https://github.com/hardmaru/estool/) under the MIT License. -# Modifications Copyright (c) 2019 Uber Technologies, Inc. +# Modifications Copyright (c) 2020 Uber Technologies, Inc. import numpy as np diff --git a/poet_distributed/niches/core.py b/poet_distributed/niches/core.py index fa76f45..a967665 100644 --- a/poet_distributed/niches/core.py +++ b/poet_distributed/niches/core.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/noise.py b/poet_distributed/noise.py index fb394fb..f8602bd 100644 --- a/poet_distributed/noise.py +++ b/poet_distributed/noise.py @@ -2,7 +2,7 @@ # (https://github.com/openai/evolution-strategies-starter) # under the MIT License. -# Modifications Copyright (c) 2019 Uber Technologies, Inc. +# Modifications Copyright (c) 2020 Uber Technologies, Inc. import numpy as np diff --git a/poet_distributed/noise_module.py b/poet_distributed/noise_module.py index e2fa8ac..71f415f 100644 --- a/poet_distributed/noise_module.py +++ b/poet_distributed/noise_module.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/poet_distributed/novelty.py b/poet_distributed/novelty.py index 91ed041..4310c86 100644 --- a/poet_distributed/novelty.py +++ b/poet_distributed/novelty.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,14 +16,15 @@ import numpy as np def env2array(env): - arr = [0., 0., 0., 0., 0.] + # arr = [0., 0., 0., 0., 0.] + arr = [0., 0.,0.] arr[0] = env.ground_roughness if len(env.pit_gap) > 0: arr[1] = env.pit_gap[0] arr[2] = env.pit_gap[1] - if len(env.stump_height) > 0: - arr[3] = env.stump_height[0] - arr[4] = env.stump_height[1] + # if len(env.stump_height) > 0: + # arr[3] = env.stump_height[0] + # arr[4] = env.stump_height[1] return arr @@ -36,7 +37,8 @@ def euclidean_distance(nx, ny, normalize=False): y = y.astype(float) if normalize: - norm = np.array([8., 8., 8., 3., 3.]) + # norm = np.array([8., 8., 8., 3., 3.]) + norm = np.array([8., 8., 8]) x /= norm y /= norm diff --git a/poet_distributed/optimizers.py b/poet_distributed/optimizers.py index f675b3a..d81107a 100644 --- a/poet_distributed/optimizers.py +++ b/poet_distributed/optimizers.py @@ -2,7 +2,7 @@ # (https://github.com/openai/evolution-strategies-starter) # under the MIT License. -# Modifications Copyright (c) 2019 Uber Technologies, Inc. +# Modifications Copyright (c) 2020 Uber Technologies, Inc. import numpy as np diff --git a/poet_distributed/poet_algo.py b/poet_distributed/poet_algo.py index 492e2fa..31fe207 100644 --- a/poet_distributed/poet_algo.py +++ b/poet_distributed/poet_algo.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - +import time from .logger import CSVLogger import logging @@ -185,10 +185,10 @@ def ind_es_step(self, iteration): optimizer.theta, stats = optimizer.get_step(task) self_eval_task = optimizer.start_theta_eval(optimizer.theta) self_eval_stats = optimizer.get_theta_eval(self_eval_task) - - logger.info('Iter={} Optimizer {} theta_mean {} best po {} iteration spent {}'.format( + temp = time.time() + logger.info('Iter={} Optimizer {} theta_mean {} best po {} iteration spent {} at time {}'.format( iteration, optimizer.optim_id, self_eval_stats.eval_returns_mean, - stats.po_returns_max, iteration - optimizer.created_at)) + stats.po_returns_max, iteration - optimizer.created_at,temp)) optimizer.update_dicts_after_es(stats=stats, self_eval_stats=self_eval_stats) @@ -307,6 +307,7 @@ def get_child_list(self, parent_list, max_children): def adjust_envs_niches(self, iteration, steps_before_adjust, max_num_envs=None, max_children=8, max_admitted=1): if iteration > 0 and iteration % steps_before_adjust == 0: + print("new_env-------------") list_repro, list_delete = self.check_optimizer_status(iteration) if len(list_repro) == 0: @@ -316,25 +317,30 @@ def adjust_envs_niches(self, iteration, steps_before_adjust, max_num_envs=None, logger.info(list_repro) logger.info("list of niches to delete") logger.info(list_delete) - - child_list = self.get_child_list(list_repro, max_children) - - if child_list == None or len(child_list) == 0: - logger.info("mutation to reproduce env FAILED!!!") - return - #print(child_list) - admitted = 0 - for child in child_list: - new_env_config, seed, _, _ = child - # targeted transfer - o = self.create_optimizer(new_env_config, seed, is_candidate=True) - score_child, theta_child = o.evaluate_transfer(self.optimizers) - del o - if self.pass_mc(score_child): # check mc - self.add_optimizer(env=new_env_config, seed=seed, created_at=iteration, model_params=np.array(theta_child)) - admitted += 1 - if admitted >= max_admitted: - break + flag_new = True + nb_try = 0 + while flag_new or nb_try >= 20: + nb_try += 1 + child_list = self.get_child_list(list_repro, max_children) + + if child_list == None or len(child_list) == 0: + logger.info("mutation to reproduce env FAILED!!!") + return + #print(child_list) + admitted = 0 + for child in child_list: + new_env_config, seed, _, _ = child + # targeted transfer + o = self.create_optimizer(new_env_config, seed, is_candidate=True) + score_child, theta_child = o.evaluate_transfer(self.optimizers) + del o + print(nb_try," try,score:",score_child) + if self.pass_mc(score_child): # check mc + flag_new = False + self.add_optimizer(env=new_env_config, seed=seed, created_at=iteration, model_params=np.array(theta_child)) + admitted += 1 + if admitted >= max_admitted: + break if max_num_envs and len(self.optimizers) > max_num_envs: num_removals = len(self.optimizers) - max_num_envs @@ -359,7 +365,7 @@ def optimize(self, iterations=200, for iteration in range(iterations): - self.adjust_envs_niches(iteration, self.args.adjust_interval * steps_before_transfer, + self.adjust_envs_niches(iteration, 20, max_num_envs=self.args.max_num_envs) for o in self.optimizers.values(): diff --git a/poet_distributed/reproduce_ops.py b/poet_distributed/reproduce_ops.py index a81633c..1d3869e 100644 --- a/poet_distributed/reproduce_ops.py +++ b/poet_distributed/reproduce_ops.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Uber Technologies, Inc. +# Copyright (c) 2020 Uber Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,17 +18,15 @@ def name_env_config(ground_roughness, - pit_gap, - stump_width, stump_height, stump_float, - stair_width, stair_height, stair_steps): + pit_gap): env_name = 'r' + str(ground_roughness) if pit_gap: env_name += '.p' + str(pit_gap[0]) + '_' + str(pit_gap[1]) - if stump_width: - env_name += '.b' + str(stump_width[0]) + '_' + str(stump_height[0]) + '_' + str(stump_height[1]) - if stair_steps: - env_name += '.s' + str(stair_steps[0]) + '_' + str(stair_height[1]) + # if stump_width: + # env_name += '.b' + str(stump_width[0]) + '_' + str(stump_height[0]) + '_' + str(stump_height[1]) + # if stair_steps: + # env_name += '.s' + str(stair_steps[0]) + '_' + str(stair_height[1]) return env_name @@ -77,12 +75,12 @@ def mutate(self, parent): ground_roughness=parent.ground_roughness pit_gap = list(parent.pit_gap) - stump_width=list(parent.stump_width) - stump_height=list(parent.stump_height) - stump_float=list(parent.stump_float) - stair_height=list(parent.stair_height) - stair_width=list(parent.stair_width) - stair_steps=list(parent.stair_steps) + # stump_width=list(parent.stump_width) + # stump_height=list(parent.stump_height) + # stump_float=list(parent.stump_float) + # stair_height=list(parent.stair_height) + # stair_width=list(parent.stair_width) + # stair_steps=list(parent.stair_steps) if 'roughness' in self.categories: ground_roughness = np.round(ground_roughness + self.rs.uniform(-0.6, 0.6), 1) @@ -97,47 +95,39 @@ def mutate(self, parent): pit_gap = self.populate_array(pit_gap, [0, 0.8], increment=0.4, max_value=[8.0, 8.0]) - if 'stump' in self.categories: - sub_category = '_h' - enforce = (len(stump_width) == 0) + # if 'stump' in self.categories: + # sub_category = '_h' + # enforce = (len(stump_width) == 0) - if enforce or sub_category == '_w': - stump_width = self.populate_array(stump_width, [1, 2], enforce=enforce) + # if enforce or sub_category == '_w': + # stump_width = self.populate_array(stump_width, [1, 2], enforce=enforce) - if enforce or sub_category == '_h': - stump_height = self.populate_array(stump_height, [0, 0.4], - increment=0.2, enforce=enforce, max_value=[5.0, 5.0]) + # if enforce or sub_category == '_h': + # stump_height = self.populate_array(stump_height, [0, 0.4], + # increment=0.2, enforce=enforce, max_value=[5.0, 5.0]) - stump_float = self.populate_array(stump_float, [0, 1], enforce=True) + # stump_float = self.populate_array(stump_float, [0, 1], enforce=True) - if 'stair' in self.categories: - sub_category = '_h' #self.rs.choice(['_s', '_h']) - enforce = (len(stair_steps) == 0) + # if 'stair' in self.categories: + # sub_category = '_h' #self.rs.choice(['_s', '_h']) + # enforce = (len(stair_steps) == 0) - if enforce or sub_category == '_s': - stair_steps = self.populate_array(stair_steps, [1, 2], interval=1, increment=1, enforce=enforce, max_value=[9, 9]) - stair_steps = [int(i) for i in stair_steps] + # if enforce or sub_category == '_s': + # stair_steps = self.populate_array(stair_steps, [1, 2], interval=1, increment=1, enforce=enforce, max_value=[9, 9]) + # stair_steps = [int(i) for i in stair_steps] - if enforce or sub_category == '_h': - stair_height = self.populate_array(stair_height, [0, 0.4], - increment=0.2, enforce=enforce, max_value=[5.0, 5.0]) + # if enforce or sub_category == '_h': + # stair_height = self.populate_array(stair_height, [0, 0.4], + # increment=0.2, enforce=enforce, max_value=[5.0, 5.0]) - stair_width = self.populate_array(stump_width, [4, 5], enforce=True) + # stair_width = self.populate_array(stump_width, [4, 5], enforce=True) child_name = name_env_config(ground_roughness, - pit_gap, - stump_width, stump_height, stump_float, - stair_width, stair_height, stair_steps) + pit_gap) child = Env_config( name=child_name, ground_roughness=ground_roughness, - pit_gap=pit_gap, - stump_width=stump_width, - stump_height=stump_height, - stump_float=stump_float, - stair_height=stair_height, - stair_width=stair_width, - stair_steps=stair_steps) + pit_gap=pit_gap) return child diff --git a/run_poet_local.sh b/run_poet_local.sh index 6594440..c5eab62 100755 --- a/run_poet_local.sh +++ b/run_poet_local.sh @@ -27,9 +27,9 @@ python -u master.py \ --normalize_grads_by_noise_std \ --returns_normalization=centered_ranks \ --envs stump pit roughness \ - --max_num_envs=25 \ - --adjust_interval=8 \ + --max_num_envs=10 \ + --adjust_interval=2 \ --propose_with_adam \ - --steps_before_transfer=25 \ - --num_workers 10 \ - --n_iterations=50000 2>&1 | tee ~/ipp/$experiment/run.log + --steps_before_transfer=10 \ + --num_workers 2 \ + --n_iterations=5000 2>&1 | tee ~/ipp/$experiment/run.log