372def assert_and_infer_cfg(cache_urls=True):
373 """Checks config values invariants."""
374 err_str = "The first lr step must start at 0"
375 assert not _C.OPTIM.STEPS or _C.OPTIM.STEPS[0] == 0, err_str
376 data_splits = ["train", "val", "test"]
377 err_str = "Data split '{}' not supported"
378 assert _C.TRAIN.SPLIT in data_splits, err_str.format(_C.TRAIN.SPLIT)
379 assert _C.TEST.SPLIT in data_splits, err_str.format(_C.TEST.SPLIT)
380 err_str = "Mini-batch size should be a multiple of NUM_GPUS."
381 assert _C.TRAIN.BATCH_SIZE % _C.NUM_GPUS == 0, err_str
382 assert _C.TEST.BATCH_SIZE % _C.NUM_GPUS == 0, err_str
383 err_str = "Log destination '{}' not supported"
384 assert _C.LOG_DEST in ["stdout", "file"], err_str.format(_C.LOG_DEST)
385 if cache_urls:
386 cache_cfg_urls()
387
388