gpt4 book ai didi

machine-learning - Keras:为什么 'accuracy' 高于 'val_acc' ?

转载 作者:行者123 更新时间:2023-11-30 08:33:28 26 4
gpt4 key购买 nike

我使用 metrics=['accuracy'] 编译了一个模型,并且我获得的值始终高于验证准确度 val_acc。例如:

Epoch 19/20
53/53 [==============================] - 280s - loss: 0.3931 - acc: 0.8238 - val_loss: 0.5002 - val_acc: 0.7757
Epoch 20/20
53/53 [==============================] - 278s - loss: 0.3957 - acc: 0.8255 - val_loss: 0.5009 - val_acc: 0.7754
accuracy: 0.790697674418604

有人知道这两个值的计算方式有何不同吗?

更新

我使用的是 Keras 2.0.8。我所说的“准确度”是指最后一行准确度:0.790697674418604。我没有给它提供测试集,所以我想知道它测试的是什么。

最佳答案

在训练期间,样本再次分为 2 个内部子集。一个用于实际训练,另一个用于每个时期后的验证。分割比例可以通过参数“validation_split”控制,如下所示(来自 Keras 的示例)

h = model.fit(X_train, Y_train, batch_size=200, epochs=50, verbose=2, validation_split=0.2)

现在,进入日志,“acc”指的是训练内容的准确性。 'val_acc' 指验证集。请注意,val_acc 指的是训练期间未向网络显示的一组样本,因此指的是模型在训练集之外的情况下一般的工作情况。

验证准确度低于准确度是很常见的。但理想情况下,您应该努力将这些值(value)观保持在同一水平。如果验证准确度远低于准确度,则肯定是过度拟合(如上例所示) - 准确度为 84,验证准确度为 77。

编辑:关于日志最后一行中的“准确性”,即所有时期针对测试数据集运行后网络的准确性。这通常比准确度更接近“val_acc”(如上面的情况,它是 79)。这只是意味着在上一个时期运行中,测试数据中的样本比验证数据中的样本更接近(请记住,这两个集合都不用于训练)

无论如何,我认为您应该进行调整以确保“acc”和“val_acc”以及最终的“准确性”彼此更加接近

关于machine-learning - Keras:为什么 'accuracy' 高于 'val_acc' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com