当前位置: 首页 > 知识库问答 >
问题:

在CNN中的每个历元训练期间,验证精度都很高,但分类报告中的最终精度非常低,这意味着什么?

高奇
2023-03-14

我正在建立一个CNN模型,用于预测x射线图像是否感染了新冠病毒。在训练模型的过程中,我在每一个时代都得到了准确度和损失。

Epoch 1/20
43/43 [==============================] - 157s 4s/step - loss: 16.5535 - accuracy: 0.8844 - val_loss: 1.6308 - val_accuracy: 0.9914

Epoch 2/20
43/43 [==============================] - 153s 4s/step - loss: 9.3576 - accuracy: 0.9647 - val_loss: 1.8470 - val_accuracy: 0.9871

Epoch 3/20
43/43 [==============================] - 152s 4s/step - loss: 4.8507 - accuracy: 0.9720 - val_loss: 2.1491 - val_accuracy: 0.9871

Epoch 4/20
43/43 [==============================] - 153s 4s/step - loss: 2.8917 - accuracy: 0.9772 - val_loss: 0.5409 - val_accuracy: 0.9914

Epoch 5/20
43/43 [==============================] - 153s 4s/step - loss: 1.7138 - accuracy: 0.9831 - val_loss: 0.4102 - val_accuracy: 0.9957

Epoch 6/20
43/43 [==============================] - 153s 4s/step - loss: 2.4398 - accuracy: 0.9801 - val_loss: 5.5315 - val_accuracy: 0.9569

Epoch 7/20
43/43 [==============================] - 153s 4s/step - loss: 4.3175 - accuracy: 0.9661 - val_loss: 0.5032 - val_accuracy: 0.9914

Epoch 8/20
43/43 [==============================] - 152s 4s/step - loss: 1.7567 - accuracy: 0.9816 - val_loss: 0.5169 - val_accuracy: 0.9914

Epoch 9/20
43/43 [==============================] - 153s 4s/step - loss: 1.5359 - accuracy: 0.9786 - val_loss: 0.2652 - val_accuracy: 0.9957

Epoch 10/20
43/43 [==============================] - 153s 4s/step - loss: 0.9022 - accuracy: 0.9897 - val_loss: 0.1173 - val_accuracy: 0.9957

Epoch 11/20
43/43 [==============================] - 153s 4s/step - loss: 0.9991 - accuracy: 0.9801 - val_loss: 0.2755 - val_accuracy: 0.9871

当我对预测运行分类报告时,准确率只有50%。为什么会发生这种情况请有人解释一下?

共有1个答案

唐恺
2023-03-14

在训练了许多模型后,我开始知道准确性没有多大帮助。这就是为什么,你应该关注损失,而不是太多的准确性。在这种情况下,我会建议你降低学习率,因为我可以看到学习不是很稳定。此外,我猜你没有在你的网络中使用批处理标准化层,因此你得到的准确率为50%。我不能说太多,因为你没有提供太多细节(就像你没有提供你正在使用的模型结构、优化器和损失函数)。但是尝试降低学习率并将批处理规范化引入到您的模型中。

 类似资料:
  • 刚从ML开始,创建了我的第一个CNN来检测人脸图像的方位。我得到的训练和测试精度高达约96-99%超过2组不同的1000张图片(128x128RGB)。然而,当我自行从测试集中预测一个图像时,模型很少预测正确。我认为在测试和预测期间,我将数据加载到模型中的方式肯定有区别。下面是我如何将数据加载到模型中进行训练和测试: 下面是我如何加载图像来进行预测: ImageDataGenerator处理图像的

  • 我的Keras CNN模型(基于AlexNet的一个实现)的训练精度总是接近0.5(在+-0.02以内),验证精度总是精确的0.5。它是一个二进制分类模型,其中train/val的分割大约为85/15,并且在这两个集合中,图像对每个类进行50/50的分割。

  • 问题内容: 我正在尝试从看起来具有 很好清晰度的图像中检测出圆形。我确实意识到圈子的一部分丢失了,但是从 我读到的有关霍夫变换的内容来看,这似乎并不会 导致我遇到的问题。 Code: 我把高斯模糊注释掉了,因为(直觉上反),这 极大地增加了发现同样不准确的圆的数量。 我的输入图像有什么问题会导致Hough无法正常工作 吗?我的参数有问题吗? 编辑:第一个答案带来了一个关于 霍夫最小/最大半径提示的

  • 问题内容: 当我将整个数据集加载到内存中并使用以下代码在Keras中训练网络时: 这会在每个时期生成带有ETA,准确性,损失等指标的进度条 当我分批训练网络时,我正在使用以下代码 这将为每个批次而不是每个时期生成一个进度条。在分批训练期间是否可以为每个时期生成进度条? 问题答案: 1。 在上述对的更改中,如文档中所述:“详细:0表示不记录到stdout,1表示进度条记录,” 。 它将输出显示为:

  • 我想创建一个预测年龄和性别的模型,并将其集成到Android应用程序中。 我在Ubuntu 16上使用Python 3.6,Tensorflow 1.13.1和Keras 2.2.4。 首先,我用IMDB数据集训练不同的模型:keras的Mobilenet V1和V2,以及我自己编写的VGG。对于这两个MobileNet,我使用imagenet权重来初始化模型。 准确率相当高,性别的准确率超过90