-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtensorboard-experiment
executable file
·51 lines (45 loc) · 1.71 KB
/
tensorboard-experiment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
import sys
import os
import datetime
import subprocess
import shutil
import fileinput
from threading import Thread
from pick import pick
from config import ConfigHelper, ConfigKWArg
def make_config_helper():
helper = ConfigHelper('''
Starts tensorboard server for experiments.
''')
helper.add_argument(ConfigKWArg("exp_dir", "~/scratch/gan-experiments",
type='filer', required=False,
default="/tmp/%s-experiments" % os.getenv("USER"),
help='The base experiments directory in which to save all experiments'))
helper.add_argument(ConfigKWArg("port", 6006,
type=int, required=False, default=6006,
help='The port to run tensorboard on'))
return helper
def main():
config_helper = make_config_helper()
try:
config = config_helper.parse_args()
except RuntimeError as details:
print("tensorboard-experiment: %s" % details, file=sys.stderr)
print("tensorboard-experiment: Consult --help", file=sys.stderr)
sys.exit(1)
try:
selected = map(lambda x: x[0], pick(sorted(os.listdir(config.exp_dir)), "Experiments",
multi_select=True, min_selection_count=1))
arg = "--logdir=%s" % \
",".join(("%s:%s" % (s[4:], os.path.join(config.exp_dir, s, "output", "logdir")) \
for s in selected))
cmd = ["bash", "-c", "tensorboard %s --port %d" % (arg, config.port)]
print(" ".join(cmd))
with subprocess.Popen(cmd, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr,
env={"PATH": os.getenv("PATH")}) as p:
p.wait()
except KeyboardInterrupt:
pass
if __name__ == "__main__":
main()