Hi @xen0f0n, what is the expected behaviour for you ?
I think what happens is a normal behaviour:
Your data provider has 172 samples, when engine is asked to measure an epoch as 512 iterations it does not mean that data provider should be restarted after 512 iterations.
data
|-----|-----|-----|-----|-----|-----|-----|-----|
epoch
|----------|----------|----------|----------|

So, trainer asks for data from the data provider and on 512th iteration, data loader has been restarted previously twice and provides 168th sample, then on 513th iteration (and epoch + 1), provided data corresponds to 169th sample from data loader.
What do you think ?