I wrote a custom batch sampler that buckets the utterances in a batch so as to minimize the padding. This logic in batch sampler works and it has been tested. When I load the first batch from the dataloader, I see that it loads the utterances corresponding to the indexes as returned by the batch sampler. However, the utterances themselves have changed now. What was present at a particular index during bucketing, is no longer there now and something else is exists in its place. This has lead me to conclude that the ordering within the dataset has changed.
The shuffle option in dataloader has been turned off (also that should be mutually exclusive when a batchsampler is provided to the dataloader anyway). Can anybody help me figure out when would pytorch shuffle the dataset otherwise?