首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tensorflow -模型仅预测6类中的2类

Tensorflow -模型仅预测6类中的2类
EN

Stack Overflow用户
提问于 2018-04-22 21:52:08
回答 1查看 352关注 0票数 1

我正在构建一个CNN来分类6个类别,有50x50像素的灰度图像(每类1400幅)。在对模型进行训练并对损失和精度进行评估后,似乎一切都运行良好,训练精度约为98%,损失降至3.0,但当对每个类别的测试数据进行评估时,该模型就很遥远了。我所拥有的是面部表情的形象: 1)愤怒,2)恐惧,3)快乐,4)中性,5)悲伤,意外

这是木星笔记本:edge.ipynb

例如,当我为每个类提供350个测试映像时,只能预测angersuprise类。

代码语言:javascript
运行
复制
    TEST IMAGES                   RESULTS
    Angry -    it classified 76 angry, and 273 surprise

    Fear -     it classified 8 angry and 342 surprise

    Happy -    12 angry and 338 surprise

    Neutral -   350 surprise

    Sad -       22 angry and 328 surprise

    Surprise - a full 350/350 classified for this one.. 

很明显,有些人倾向于愤怒和惊讶,因为其他图片中没有一张曾经被分类过。

当我在训练后运行acc.eval({x: test_images, y: test_labels, is_training : False}) (每个类和相应的2100张图片)时,我得到了82%的准确率,所以我不知道这是怎么发生的。是否有可能这个模型一直在这两个课程上进行训练呢?

@注意:图像和标签是一种热编码的,也是随机改组的,实现了批处理规范化。

更新

我重新训练了模型,它有着相同的影响,但有不同的课程。这一次,它倾向于悲伤和惊讶,而不是愤怒和惊讶。以下是研究结果:

代码语言:javascript
运行
复制
Angry - Sad 259 and surprise 75
Fear - Sad 118 and surprise 218 (some classifications missing here for some reason)
Happy - Sad 167 times and suprise 160 times (same again, missing some classifications)
Neutral - sad 94 and surprise 249
Sad - sad 211 and surprise 122
Surprise - Sad 284 and surprise 52
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-23 00:39:13

代码中有一些东西,但最重要的是,由于某种原因,它没有在is_training = False中运行。如果您设置is_training = True ,即使不训练,它也会给出可接受的结果。所以训练是可以的,但是评估不能正常进行。

为什么这是我现在不能回答的问题,但可能值得调查。

附在木星笔记本中的固定代码。我已经改变了很多小的东西,比如你拿了已经软最大值的软件,修正了,改变了随机的洗牌来使用numpy,改变了测试图像的加载来在加载时立即进行调整,等等。还有很多调试打印正在进行,很抱歉。:)

看起来合理,验证准确率为88% (训练准确率96.59%)。(也变成了10个时代。)

v2.ipynb

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49971092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档