批次是64,但是188*64=12032会多出了32,这是什么原因呢?
因为12000/64=187.5,多出了0.5个batch,而设置了shuffle为True,就会随机打乱数据然后补全32个数据补全batch=64
如果不想补全,有以下办法:
1关闭shuffle
val_dataloader = DataLoader(val_data, batch_size=64, shuffle=False, num_workers=2)
2.drop_last=True 置 drop_last=True
来丢弃最后一个不足 batch_size
的 batch
val_dataloader = DataLoader(val_data, batch_size=64, shuffle=True, num_workers=2, drop_last=True)