Your question is Custom Data Loader for Deep Learning. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
DataArt's machine learning delivery pipelines need a lightweight custom data loader for in-memory training records. Implement a function that creates mini-batches, optionally shuffles records reproducibly, and optionally removes the final incomplete batch.
Given a list records, return a list of batches. Each batch is a list containing at most batch_size records. When shuffle is True, use a local pseudo-random generator initialized with seed, so the same inputs always produce the same ordering. Do not mutate records or its contained records. When drop_last is True, omit any batch with fewer than batch_size records.
The function signature is:
def create_batches(records, batch_size, shuffle, seed, drop_last):
def create_batches(records, batch_size, shuffle, seed, drop_last):