I guess you are mixing up the number of samples, which is given as the length of the Dataset, and the number of batches, which is given as the length of the DataLoader.
Based on the posted numbers, I assume train_loader uses a batch size of 1, so that len(dataset)==len(train_loader).
However, inside the loop you are using a batch size of 256. Assuming the subset has now 14440 samples, the DataLoader would yield 57 batches (14440/256=56.40625).