in grok/data.py [0:0]
def calculate_batchsize(ds_size: int, batchsize_hint: int = 0) -> int:
"""
Calculates which batch size to use
:param ds_size: the number of equations in the dataset
:param batchsize_hint: * 0 means we use a default batchsize
* -1 means the entire dataset
* float between 0 and 1 means each batch is
that fraction of the DS
* int > 1 means that specific batch size
:returns: the actual batchsize to use
"""
if batchsize_hint == -1:
return ds_size
elif batchsize_hint == 0:
return min(512, math.ceil(ds_size / 2.0))
elif (batchsize_hint > 0) and (batchsize_hint < 1):
return math.ceil(ds_size * batchsize_hint)
elif batchsize_hint > 1:
return min(batchsize_hint, ds_size)
else:
raise ValueError("batchsize_hint must be >= -1")