so what I think you should do:
if epoch%2 == 0:
data_small = data[0:new_size]
del data
give it a try and let me know what happens
I think that in your previous attempt you created a confusion between the data loaders because they are data loaders from the same dataset. in the method suggested here - you use only the large data loader, but use only a portion of the batch each even epoch. So if the suggestion above works, it will skip part of the data. This can be fixed later - maybe use only the small batch data loader taking 4 batches every ‘odd’ epoch. We can see after you try the above