worker-name | acc | lr |
---|---|---|
w0 | 0.9 | 0.001 |
0.8 | 0.0005 |
share spreadsheet to email: clerkx@log-clerk.iam.gserviceaccount.com
install clerk:
pip install git+https://github.com/LiyuanLucasLiu/clerk.git
get clerk credential and store it to the config path: CLERK_CONFIG
clerk config -ss spread-sheet-name -ws work-sheet-name -w worker-name
preset=$(clerk new-run)
while [ $preset == 'preset_found' ]
do
bash sub_run.sh $OUTPUT_DIR $LOAD_DIR "$(clerk get-args learning_rate batch_size epochs warmup)"
preset=$(clerk new-run)
done
from clerk import init_clerk_logger
init_clerk_logger(rank=distributed_utils.get_global_rank())
class ClerkSimpleProgressBar(BaseProgressBar):
"""A minimal logger for non-TTY environments."""
def __init__(self, iterable, epoch=None, prefix=None, log_interval=1000):
super().__init__(iterable, epoch, prefix)
self.log_interval = log_interval
self.i = None
self.size = None
def __iter__(self):
self.size = len(self.iterable)
for i, obj in enumerate(self.iterable, start=self.n):
self.i = i
yield obj
def _str_commas(self, stats):
return "; ".join(key + "=" + stats[key].strip() for key in stats.keys())
def log(self, stats, tag=None, step=None):
"""Log intermediate stats according to log_interval."""
step = step or self.i or 0
if step > 0 and self.log_interval is not None and step % self.log_interval == 0:
stats = self._format_stats(stats)
postfix = self._str_commas(stats)
with rename_logger(logger, tag):
logger.info(
"[clerk] epoch={}; update_in_epoch={}; {}; {}".format(
self.epoch, self.i + 1, self.size, postfix
)
)
def print(self, stats, tag=None, step=None):
"""Print end-of-epoch stats."""
postfix = self._str_pipes(self._format_stats(stats))
with rename_logger(logger, tag):
logger.info("{} | {}".format(self.prefix, postfix))