def _get_train_valid_test_num_samples(training_config: Any) -> tuple[int, int, int]:
"""Calculate train, validation, and test sizes from the training plan."""
if training_config is None:
raise ValueError("Dataset sample planning requires a training configuration")
global_batch_size = training_config.global_batch_size
if training_config.train_iters is not None:
train_iters = training_config.train_iters
elif training_config.train_samples:
train_iters = training_config.train_samples // global_batch_size
else:
raise ValueError("training.train_iters and training.train_samples cannot both be None")
train_samples = training_config.train_samples or train_iters * global_batch_size
eval_iters = training_config.eval_iters
valid_iters = (train_iters // eval_iters + 1) * eval_iters if eval_iters else 0
split_sizes = (train_samples, valid_iters * global_batch_size, eval_iters * global_batch_size)
logger.debug("Dataset target sizes: train=%d, validation=%d, test=%d", *split_sizes)
return split_sizes
def build_online_omni_mapping_dataset(
*,