|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""Script to run run_train.py locally. |
|
""" |
|
|
|
from __future__ import absolute_import |
|
from __future__ import division |
|
from __future__ import print_function |
|
import os |
|
import random |
|
from subprocess import call |
|
import sys |
|
|
|
CONFIGS_PATH = './configs' |
|
CONTEXT_CONFIGS_PATH = './context/configs' |
|
|
|
def main(): |
|
bb = '.' |
|
base_num_args = 6 |
|
if len(sys.argv) < base_num_args: |
|
print( |
|
"usage: python %s <exp_name> <context_setting_gin> <env_context_gin> " |
|
"<agent_gin> <suite> [params...]" |
|
% sys.argv[0]) |
|
sys.exit(0) |
|
exp = sys.argv[1] |
|
context_setting = sys.argv[2] |
|
context = sys.argv[3] |
|
agent = sys.argv[4] |
|
assert sys.argv[5] in ["suite"], "args[5] must be `suite'" |
|
suite = "" |
|
binary = "python {bb}/run_train{suite}.py ".format(bb=bb, suite=suite) |
|
|
|
h = os.environ["HOME"] |
|
ucp = CONFIGS_PATH |
|
ccp = CONTEXT_CONFIGS_PATH |
|
extra = '' |
|
port = random.randint(2000, 8000) |
|
command_str = ("{binary} " |
|
"--train_dir={h}/tmp/{context_setting}/{context}/{agent}/{exp}/train " |
|
"--config_file={ucp}/{agent}.gin " |
|
"--config_file={ucp}/train_{extra}uvf.gin " |
|
"--config_file={ccp}/{context_setting}.gin " |
|
"--config_file={ccp}/{context}.gin " |
|
"--summarize_gradients=False " |
|
"--save_interval_secs=60 " |
|
"--save_summaries_secs=1 " |
|
"--master=local " |
|
"--alsologtostderr ").format(h=h, ucp=ucp, |
|
context_setting=context_setting, |
|
context=context, ccp=ccp, |
|
suite=suite, agent=agent, extra=extra, |
|
exp=exp, binary=binary, |
|
port=port) |
|
for extra_arg in sys.argv[base_num_args:]: |
|
command_str += "--params='%s' " % extra_arg |
|
|
|
print(command_str) |
|
call(command_str, shell=True) |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|