为什么我的acc总是更高而我的val_acc很小?

时间:2019-08-24 06:29:18

标签: python deep-learning conv-neural-network

我尝试训练14000个训练数据集和3500个验证数据集,但是为什么每次训练时,我总是在验证部分很小的情况下获得高精度结果

所以,如果我希望验证结果与培训的准确性接近,该怎么办? 并为每个纪元提供重要的补充

是否必须添加或减去某些内容? [对不起,英语不好]

from collections import Counter

t = [('a', 1), ('b', 2), ('c', 3), ('a', 4)]

h = Counter()
for k, v in t:
    h[k] += v

h
Counter({'a': 5, 'c': 3, 'b': 2})

我得到了这个结果(抱歉,我不知道如何在此处放置图片)

时代198/200 100/100 [=============================]-114s 1s / step-损耗:0.1032-acc:0.9619-val_loss :1.1953-val_acc:0.7160

历代199/200 100/100 [=============================]-115s 1s / step-损耗:0.1107-acc:0.9591-val_loss :1.4148-val_acc:0.6702

时代200/200 100/100 [=============================]-112s 1s / step-损耗:0.1229-acc:0.9528-val_loss :1.2995-val_acc:0.6928

1 个答案:

答案 0 :(得分:0)

当您的训练精度很高,但验证精度很低时,您就拥有overfitted模型。简而言之,您的模型已经了解了训练数据的结构,但是无法对其进行概括。为了减少过度拟合,您可以尝试

  • 简化模型,
  • dropout引入某些层次,
  • 使用更大的培训批次。
相关问题