训练模型的准确率很高,但是验证集准确率特别低

训练图的过程如下:

 

训练结果:

训练的loss很低,而且正确率已经很高了,但是在验证集上面,loss比较高,而且准确率特别低,还一直不稳定。

 

产生原因:

将每个类别的数据集中的放在一起,而且数据标签也是很集中的

model.fit(train_data, train_label,
          batch_size = 32,
          epochs = 100,
          validation_split = 0.2,
          shuffle = True)

在module的fit函数里面,虽然有 shuffle ,但是感觉不太对啊,所以还是要提前对数据进行打乱。

 

解决方法:

打乱数据,但是注意,在打乱的时候,一定要连标签一起打乱,保证打乱后的数据和标签是一一对应 的。

np.random.seed(200)
np.random.shuffle(train_data) 
np.random.seed(200)
np.random.shuffle(train_label)

np.random.seed(200)
np.random.shuffle(test_data) 
np.random.seed(200)
np.random.shuffle(test_label)

解决结果:

训练模型的准确率很高,但是验证集准确率特别低_第1张图片

论 shuffle 的重要性!!!

 

你可能感兴趣的:(shuffle,深度学习)