我完全理解使用与测试集分开的训练集。
我也理解你为什么要在训练集中打乱批次来计算小批量的梯度。
但是,https://pytorch.org/tutorials/beginner/basics/data_tutorial.html中提到的广告,我不明白你为什么要使用测试集的改组,例如:
test_dataloader = DataLoader(test_data, batch_size=64, shuffle=True)
在什么情况下会有用?
回答1
在大多数情况下不需要,因为您不更新权重。
很难举出一个例子,但与批次相关的统计数据可能就是其中之一——例如跨批次的平均准确度。
尽管如此,我从来没有见过这样的事情,有人可能会争辩(我同意)洗牌测试 dataset 引入了不必要的随机性(如果有的话),并使不同时期之间的比较不那么可靠(在上面的例子中)。