Source code for deepreplay.utils

# These functions were extracted from Keras to assure there will
# be no break in compatibility with DeepReplay's code.

[docs]def make_batches(size, batch_size): """Function extracted from Keras - check keras.engine.training_utils for the original version. Returns a list of batch indices (tuples of indices). # Arguments size: Integer, total size of the data to slice into batches. batch_size: Integer, batch size. # Returns A list of tuples of array indices. """ num_batches = (size + batch_size - 1) // batch_size # round up return [(i * batch_size, min(size, (i + 1) * batch_size)) for i in range(num_batches)]
[docs]def slice_arrays(arrays, start=None, stop=None): """ Function extracted from Keras - check keras.utils.generic_utils for the original version. Slices an array or list of arrays. This takes an array-like, or a list of array-likes, and outputs: - arrays[start:stop] if `arrays` is an array-like - [x[start:stop] for x in arrays] if `arrays` is a list Can also work on list/array of indices: `_slice_arrays(x, indices)` # Arguments arrays: Single array or list of arrays. start: can be an integer index (start index) or a list/array of indices stop: integer (stop index); should be None if `start` was a list. # Returns A slice of the array(s). """ if arrays is None: return [None] elif isinstance(arrays, list): if hasattr(start, '__len__'): # hdf5 datasets only support list objects as indices if hasattr(start, 'shape'): start = start.tolist() return [None if x is None else x[start] for x in arrays] else: return [None if x is None else x[start:stop] for x in arrays] else: if hasattr(start, '__len__'): if hasattr(start, 'shape'): start = start.tolist() return arrays[start] elif hasattr(start, '__getitem__'): return arrays[start:stop] else: return [None]