Middle
Improve the generator so that it is possible to change the batch_size value on the fly via the send() method.
sobes.tech AI
Answer from AI
To change the batch_size value on the fly via the send() method in a generator, you can implement a generator that supports external value passing. Example:
def batch_generator(initial_batch_size):
batch_size = initial_batch_size
while True:
new_batch_size = (yield batch_size) # return current batch_size and wait for a new value
if new_batch_size is not None:
batch_size = new_batch_size
# Usage:
gen = batch_generator(5)
print(next(gen)) # Outputs 5
print(gen.send(10)) # Changes batch_size to 10 and outputs 10
print(gen.send(None)) # Keeps batch_size at 10 and outputs 10
Thus, through send() you can pass a new batch_size value, which will be used in the next generator cycle.