【发布时间】:2019-06-18 15:36:19
【问题描述】:
我实现了一个图像分类网络,通过使用 Alexnet 作为预训练模型并更改最终输出层来对 100 个类别的数据集进行分类。 我在加载数据时注意到
trainloader = torch.utils.data.DataLoader(train_data, batch_size=32, shuffle=False)
,我在大约 10 个 epoch 的验证数据集上获得了大约 2-3% 的准确率,但是当我刚刚更改 shuffle=True 并重新训练网络时,第一个 epoch 本身的准确率跃升至 70%。
我想知道是否会发生这种情况,因为在第一种情况下,网络在几个实例中只显示一个类,一个接一个地连续显示,导致网络在训练期间泛化能力差,还是背后有其他原因?
但是,我没想到会产生如此巨大的影响。
P.S:除了更改 shuffle 选项外,这两种情况的所有代码和参数都完全相同。
【问题讨论】: