Demo of BaseLearnerΒΆ
This is the original code.
This is the version based on argsloader
.
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 | from pprint import pprint
from argsloader.units import cdict, cvalue, number, yesno, non_negative, regexp, positive
config_loader = cdict(dict(
train_iterations=cvalue(int(1e9), number() >> positive.int()),
dataloader=dict(num_workers=cvalue(0, number() >> non_negative.int()), ),
log_policy=cvalue(True, yesno()),
# --- Hooks ---
hook=dict(
load_ckpt_before_run=cvalue('', regexp('^$|.*\.pth\.tar$').match.check),
log_show_after_iter=cvalue(100, number() >> positive.int()),
save_ckpt_after_iter=cvalue(10000, number() >> positive.int()),
save_ckpt_after_run=cvalue(True, yesno()),
),
))
if __name__ == '__main__':
pprint(config_loader.call({
'train_iterations': int(1e10),
'dataloader': {
'num_workers': 1,
},
'hook': {
'load_ckpt_before_run': './expert/ckpt/ckpt_best.pth.tar',
'log_show_after_iter': 1000,
},
}), indent=4)
|
The result should be
1 2 3 4 5 6 7 | { 'dataloader': {'num_workers': 1},
'hook': { 'load_ckpt_before_run': './expert/ckpt/ckpt_best.pth.tar',
'log_show_after_iter': 1000,
'save_ckpt_after_iter': 10000,
'save_ckpt_after_run': True},
'log_policy': True,
'train_iterations': 10000000000}
|