问题在于:调用DataLoder时注意参数
self.train_dataloader = DataLoader(train_dataset, batch_size=TrainOption.train_batch_size, shuffle=TRUE,
原因:shuffle的参数设置错误导致,因为已经有batch_sample了,就不需要shuffle来进行随机的sample了,所以在这里的shuffle应该设置为FALSE才对。
另外,如果指定了batch_sampler,那么就不要再额外指定 batch_size的大小了;
指定了sampler,shuffle就应该是默认的 “ False ”。
即使自己不指定batch_sampler,DataLoader还是会生成的:
if batch_sampler is None:
if sampler is None:
if shuffle:
sampler = RandomSampler(dataset)
else:
sampler = SequentialSampler(dataset)
batch_sampler = BatchSampler(sampler, batch_size, drop_last)