Why do sometimes CNN models predict just one class out of all others?(为什么有时候CNN的模型只预测了所有其他班级中的一个呢?)
本文介绍了为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是深度学习领域的新手,所以请不要像Reddit那样刻薄!这似乎是一个一般性问题,因此我不会在此给出我的代码,因为它似乎没有必要(如果是,这里有指向colab的链接)
关于数据:您可以找到原始数据here。它是原始数据集82 GB的缩小版本。
一旦我训练我的CNN,它每次都会预测‘没有糖尿病视网膜病变’(没有DR),准确率达到73%。这是因为有大量的无DR映像还是其他原因?我没有头绪!我可以预测的5个类是["Mild", "Moderate", "No DR", "Proliferative DR", "Severe"]
。
可能是错误的代码,希望你们能帮忙
推荐答案
我正要评论:
更严格的方法是开始测量数据集平衡:每个类有多少个图像?这可能会为您的问题提供答案。
但还是忍不住看了一下您给的链接。Kaggle已经向您概述了数据集:
快速计算:25,812 / 35,126 * 100 = 73%
。这很有趣,你说你的准确度是74%
。您的模型在一个不平衡的数据集上学习,第一个类被过度表示,25k/35k
是巨大的。我的假设是,您的模型一直在预测第一类,这意味着您最终的平均精确度将为74%
。
您应该做的是平衡您的数据集。例如通过仅允许来自第一类的35,126 - 25,810 = 9,316
个示例在历元期间出现。更好的做法是在所有类之间平衡您的数据集,以便每个类在每个纪元中只出现n次。
这篇关于为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:为什么有时候CNN的模型只预测了所有其他班级中的一个呢?
猜你喜欢
- pytorch 中的自适应池是如何工作的? 2022-07-12
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 沿轴计算直方图 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01